1884 變換字串(模擬,組合數)

2021-09-27 02:34:11 字數 873 閱讀 4474

有乙個字串s,長度為n,現在要對其作變換。變換的規則如下:對於第i(1<=i<=n)個字元,可以保持不變,或者變換為第i-1個字元(如果有的話)或者第i+1個字元(如果有的話)。

請計算一下最多可以變換出多少種不同的字串,最後總數對

1000000007(109

+7)1000000007(109+7)

取餘後輸出。

樣例解釋:

樣例1中,變換出來的字串是aa, ag, ga,和 gg。

樣例2中,只能變換出aa。

輸入多組測試資料。

第一行有乙個整數t(1 ≤ t ≤ 128),表示測試資料的數目。

接下來有t組資料。

每一資料給出乙個字串s(1<=|s|<=1000,只由小寫字母組成)。

輸出對於每一組資料,輸出乙個整數表示答案,佔一行。

輸入樣例

樣例輸入12ag

aa輸出樣例

樣例輸出141

注意,字元只可同時變化,不可通過ai的變化使a(i+1)變到a(i-1)

若可以,我覺得答案應為 (不同的字母數)^(字串的長度)

最左最右有變,不變兩種情況,字元相等時為1,字元不等時為2

中間字元有不變,變左,變右3種情況,看字元不相等數量,特別注意左右兩邊的數相等的情況

#includeusing namespace std;

const long long mod=1000000007;

char s[1010];

int main()

for(int i=0;ielse if(i==strlen(s)-1)

else

}cout<} return 0;

}

csp模擬 字串問題 計數 組合數學

傳送門 又是乙個計數題,在n個數中間填加號,求所有方案的數字和。下面提供兩種解法,題解的和來自fsy的。題解 考慮每個區間對數的貢獻,要麼沒有貢獻,要麼貢獻是10的冪。故我們可以列舉使得這個數的係數為10 i時,區間的個數。發現是個組合數。發現這樣列舉實際上是固定了該點所在區間的右端點,也就是說固定...

字串變換

現有乙個字典,同時給定字典中的兩個字串s和t,給定乙個變換,每次可以改變字串中的任意乙個字元,請設計乙個演算法,計算由s變換到t所需的最少步數,同時需要滿足在變換過程中的每個串都是字典中的串。給定乙個string陣列dic,同時給定陣列大小n,串s和串t,請返回由s到t變換所需的最少步數。若無法變換...

字串變換

字串變換 相信經過這個學期的程式設計訓練,大家對於字串的操作已經掌握的相當熟練了。今天,徐老師想測試一下大家對於字串操作的掌握情況。徐老師自己定義了1,2,3,4,5這5個引數分別指代不同的5種字串操作,你需要根據傳入的引數,按照徐老師的規定,對輸入字串進行格式轉化。徐老師指定的操作如下 1.表示全...