有乙個字串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.表示全...