Codeforces Croc Champ 2012 - Round 2 B. Word Cut
2014-08-24 14:40
253 查看
解开本题的关键是注意到题中所给变换的性质:
1、一次变换相当于把串做一次循环移动
2、多次变换可用一次变换来等效
上述性质指出,串可达的状态只有串的长度个。
dp[0][i]变i次不成为目标串的方案数,dp[1][i]变i次成为目标串的方案数,先统计出可达状态中目标串和非目标串的个数就可以转移了。
1、一次变换相当于把串做一次循环移动
2、多次变换可用一次变换来等效
上述性质指出,串可达的状态只有串的长度个。
dp[0][i]变i次不成为目标串的方案数,dp[1][i]变i次成为目标串的方案数,先统计出可达状态中目标串和非目标串的个数就可以转移了。
#include <bits/stdc++.h> #define maxn 1009 #define maxm 100009 #define MOD 1000000007 using namespace std; char s1[maxn],s2[maxn]; __int64 dp[2][maxm]; int main() { int m,n,cnt1=0,cnt2=0; scanf("%s%s",s1,s2); scanf("%d",&m); n=strlen(s1); for(int i=0;i<n;i++) { bool ok=1; for(int j=0;j<n;j++) { if(s1[(i+j)%n]!=s2[j]) { ok=0; break; } } if(ok) cnt1++; else cnt2++; } if(strcmp(s1,s2)==0) { dp[1][0]=1;dp[0][0]=0; } else { dp[1][0]=0;dp[0][0]=1; } for(int i=1;i<=m;i++) { dp[1][i]=(dp[1][i-1]*(cnt1-1)+dp[0][i-1]*cnt1)%MOD; dp[0][i]=(dp[1][i-1]*cnt2+dp[0][i-1]*(cnt2-1))%MOD; } printf("%I64d\n",dp[1][m]); //system("pause"); return 0; }
相关文章推荐
- Codeforces Croc Champ 2012 - Round 2 (Unofficial Div. 2 Edition)
- Codeforces Croc Champ 2012 - Round 2 (Unofficial Div. 2 Edition)
- Codeforces VK Cup 2012 Round 3 A. Variable, or There and Back Again(dfs)
- Codeforces Bayan 2012-2013 Elimination Round / 241A Old Peykan (贪心)
- Codeforces VK Cup 2012 Round 3 A. Variable, or There and Back Again(dfs)
- cf Croc Champ 2012 - Round 1 C. Spiral Maximum
- CF_Croc Champ 2012 - Round 2 (Unofficial Div. 2 Edition)
- Croc Champ 2012 - Round 1 B. Chamber of Secrets(二分图 最短路)
- Codeforces Round #192 (Div. 2) 解题报告 //缺E
- Educational Codeforces Round 35
- Codeforces Round #158 (Div. 2)
- Codeforces Round #330 (Div. 2)——B 数学——Pasha and Phone
- Codeforces Round #135 (Div. 2)——B
- 【Codeforces Round 326 (Div 2)B】【质因数分解】Duff in Love n的最大因子使其不为平方数倍数
- Codeforces Round #403 (Div. 2) B 二分 or 三分
- Codeforces Round #150 (Div. 1) A
- Codeforces Round #124 (Div. 2)——B
- Educational Codeforces Round 11 A. Co-prime Array 水题
- Educational Codeforces Round 6 E. New Year Tree(DFS序+线段树)
- Codeforces Round #456 (Div. 2) ——B. New Year's Eve(思路)