HDU4639

来源:互联网 发布:蜂鸟众包一键抢单软件 编辑:程序博客网 时间:2024/06/05 16:13

HDU4639 HEHE

“hehe”这个词能代表两个意思‘hehe’或者‘wqnmlgb’,现在给出一个全由小写字母组成的句子,要求你计算这个句子到底表达了多少种意思。

输入:首先是一个T(1<=T<=100),然后以下T行,每行一个由小写字母组成的字符串(该串长度<=10086)。

输出:意思总数%10007的结果。

分析;

在没有hehe的句子里只能有1种意思。如果一个句子有很多段连续的hehehe或者hehe…he等,那么只要分别算每段he…he能表达多少种意思,然后求积求余即可。

现在用递推算出N(1<=N)个连续的he能表达的意思总数是S[N]:

S[0]=1,S[1]=1,S[2]=2,S[3]=3.假设hehehe…he串中从最右到最左转换为’WQNMLGB’的第一个hehe把长度为N的he…he串分成了长度为N1,和N2(N2串全由he…he组成)的串,且N1+N2=N-2。(未计算he…he串中没有一个hehe转换的情况,即保持所有字母都是原hehehehe等,该情况有1种)

3<=N时:S[N]=S[N-2]+S[N-3]+S[N-4]+…+S[1]+S[0]+1;(1表示不转换任何hehe的情况)

也可以这样分析:

最右边的那个he如果参与转变为‘WCNMLGB’则为S[N-2],否则为S[N-1]。

所以S[N]=S[N-2]+S[N-1];

 

#include<cstdio>#include<cstring>using namespace std;const int MOD=10007;int s[7000];char str[10086+100];int main(){    s[0]=1;    s[1]=1;    s[2]=2;    s[3]=3;    for(int i=4; i<=7000; i++)    {        s[i]=1;        for(int j=i-2; j>=0; j--)            s[i]=(s[i]+s[j])%MOD;    }    int t;    scanf("%d",&t);    for(int k=1; k<=t; k++)    {        scanf("%s",str);        int sum=1,cur=0,len=strlen(str);        for(int i=0; i<len; i++)        {            if((i+1)<len&&str[i]=='h'&&str[i+1]=='e')            {                cur++;                 i+=2;                while((i+1)<len&&str[i]=='h'&&str[i+1]=='e')                {                    cur++;                    i+=2;                }                //printf("cur is %d\n",cur);                sum=(sum*s[cur])%MOD;                cur=0;            }        }        printf("Case %d: %d\n",k,sum);    }    return 0;}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 临时牌照丢了1张怎么办 临牌遗失了一张怎么办 临牌只有一张了怎么办 临时牌丢了一个怎么办 药流出血特别多怎么办 新车刮擦了一点怎么办 自己的车撞墙了怎么办 新车被撞了个坑怎么办 车门被刮变形了怎么办 撞到别人的新车怎么办 新车掉了一点漆怎么办 新车擦了点漆怎么办 车挂了一点漆怎么办 第一天上班中途想走了怎么办 车子前脸裂开了怎么办 不想干了想辞职怎么办 药流期间老是吐怎么办 在工厂上班辞工后没发工资怎么办 培训期三天想走怎么办 药流吃了药吐了怎么办 工作3天不下去怎么办 在新公司融不进去怎么办 药流吃药吐了怎么办 药流期间发烧了怎么办 药流时第一天出现呕吐怎么办有事吗 药流第一天忘记第二次吃药了怎么办 药流吃药后吐了怎么办 药流只排血块不见孕囊怎么办 药流三天还有血怎么办 药流15天同房了怎么办 药流22天同房了怎么办 药流一直不排出怎么办 宝宝脸过敏红了怎么办 小孩湿疹脸上都是红红的怎么办 眼周刺痛红红的怎么办 脸敷面膜刺痛红红的怎么办 脸上有凹凸不平的坑怎么办 宝宝脸上角质层薄有红血丝怎么办 红衣军到决赛圈怎么办 宝宝湿疹留下的黑印怎么办 出牙宝宝很烦躁怎么办