HDU 4639 hehe 杭电2013多校联赛第四场1008题
2013-08-01 19:57
519 查看
解题报告:题目的意思是输入一个字符串,并规定,里面的“hehe”可以用"wqnmlgb"来代替,也可以不代替,问输入的这个字符串在经过相关的代替之后可以有多少种不同的形态。先打一个斐波那契数的表,f[1] = 1,f[2] =2....,然后从前往后扫一遍字符串,将一段连在一起的"he"一起计算,若这一段里面有 n 个 "he" ,然后这一段就有f
种不同的形态,然后一直这样扫下去,把每一段的状态数都相乘,就是最后的结果,不过,要注意的是用到斐波那契数如果不取模的话,一定会爆 int 所以打表的时候每一步都要取摸,并且相乘的时候每一步也要取模。
View Code
种不同的形态,然后一直这样扫下去,把每一段的状态数都相乘,就是最后的结果,不过,要注意的是用到斐波那契数如果不取模的话,一定会爆 int 所以打表的时候每一步都要取摸,并且相乘的时候每一步也要取模。
#include<cstdio> #include<cstring> const int MAX = 10090,MOD = 10007; int f[MAX]; void dabiao() { f[0] = f[1] = 1; f[2] = 2,f[3] = 3; for(int i = 4;i<MAX;++i) f[i] = (f[i-1]%MOD + f[i-2]%MOD)%MOD; } int main() { int T,l = 1; char S[MAX]; dabiao(); scanf("%d",&T); while(T--) { scanf("%s",S); int len = strlen(S); int tot = 0,sum = 1; for(int i = 0;i<len;++i) { if(S[i] != 'h') { sum = sum*f[tot]%MOD; tot = 0; } else if(S[i] == 'h' &&S[i+1] == 'e') { i++; tot++; } } sum = sum*f[tot]%MOD; printf("Case %d: %d\n",l++,sum); } return 0; }
View Code
相关文章推荐
- hdu 4639 Hehe 多校第四场
- hdu 4639 hehe 多校联合训练第四场
- HDU 4639 Hehe (2013多校4 1008 水题)
- HDU 4618 Palindrome Sub-Array (2013多校2 1008 暴力)
- 2013 多校第四场 hdu 4635 Strongly connected
- HDU 4335What is N?2012多校联赛第四场(欧拉函数+坑数据)
- 2013多校联合4 1008 Hehe (hdu 4639)
- 2017 杭电多校联赛 1002 Balala Power!(数字替换字母)HDU 6034
- HDU杭电2013 多校第一场解题报告
- HDU 4902 Nice boat 2014杭电多校训练赛第四场F题(线段树区间更新)
- HDU 4639 多校四-1008
- 2017 杭电多校联赛第二场 1003 Maximum Sequence(单调队列)HDU 6047
- HDU 4339 Query2012多校联赛第四场I题(set或者线段树,下面是set解法)
- HDU 4627 The Unsolvable Problem 杭电多校联赛第三场1009 数学题
- HDU 4902 2014多校联赛第四场1006 Nice boat
- 2017杭电多校第四场1003 Counting Divisors (分解质因数) hdu 6069
- 2017 杭电多校联赛第二场 1001 Is Derek lying? HDU 6045
- 2013 多校第四场 hdu 4638 Group
- HDU 5774 多校联赛第四场
- HDU 4662 MU Puzzle (2013多校6 1008 水题)