codeforces 176B - Word Cut DP
2013-02-18 20:05
344 查看
/****** 其实每一次变换,只是把数组str,从str[i]输出而已 循环构成条件:守恒的操作或者是可以确定状态的变换 先掌握变换的本质,先掌握变换的本质啊!!!! *****/ #include<cstdio> #include<cstring> #define mod 1000000007 #define LL long long const int LMT= 1002; char a[LMT<<1],b[LMT]; LL dp[100003][2]; int main(void) { int k,x=0,len; scanf("%s%s",a,b); scanf("%d",&k); len=strlen(a); dp[0][strcmp(a,b)!=0]=1; for(int i=0;i<len;i++)a[i+len]=a[i]; for(int i=0;i<len;i++) if(strncmp(a+i,b,len)==0)x++; for(int i=0;i<k;i++) { dp[i+1][0]=(x*dp[i][1]+(x-1)*dp[i][0])%mod; dp[i+1][1]=((len-x)*dp[i][0]+(len-x-1)*dp[i][1])%mod; } printf("%I64d\n",dp[k][0]); return 0; }
相关文章推荐
- [Codeforces 176B] Word Cut (脑洞+KMP+dp)
- 【Codeforces 176B】 Word Cut
- codeforces 176 B. Word Cut(DP)
- Codeforces189 A. Cut Ribbon(DP)
- [BZOJ4424]CodeForces 19# E Fairy(树形dp / Link-Cut-tree)
- Codeforces 176B【计数DP】
- Codeforces 176B 经典DP
- 【Codeforces 736C】 Ostap and Tree【树形DP】
- CodeForces 28D Don't fear, DravDe is kind(dp)
- CodeForces 429B Working out(dp,四个角递推)
- Codeforces 467C George and Job(dp)
- 【Codeforces】Codeforces Round #374 (Div. 2) -- C. Journey (DP)
- Codeforces 14E Camels (DP)
- codeforces 55D Beautiful numbers[数位dp]
- codeforces-486【C-贪心-思维】【D-树状DP】
- codeforces 486D D. Valid Sets(树形dp)
- 【codeforces 274B】【树形DP】 B. Zero Tree【一棵树,每个点有权值,每次操作可以对一个联通子集中的点全部加或者减1,且每次操作必须包含点1,问最少多少次操作权值全为0】
- CodeForces 235B Let's Play Osu!(概率dp)
- Codeforces 455A Boredom【dp】
- codeforces 19B - Checkout Assistant DP 背包