zoukankan      html  css  js  c++  java
  • hdu4639 hehe 递推

    此题为递推题 现场比赛中由于心态问题没能快速推出来
    定义f[i]为i个连续的he可以表示的语意的个数 则如果第i个he单独考虑f[i]=f[i-1];
    如果将第i个he和第i-1个he组合 则其只能表示为wqnmlgb 不然肯定会和前面一种情况重复

    代码如下:

    #include<iostream>
    #include<cstdlib>
    #include<cstdio>
    #include<fstream>
    #include<string>
    using namespace std;
    #define M 10007
    int f[10100];
    int result;
    void init()
    {
        f[0]=0;
        f[1]=0;
        f[2]=2;
        f[3]=3;
        for(int i=4;i<=10086;i++)
            f[i]=(f[i-1]+f[i-2])%M;
    }
    int main()
    {
        string s;
        int t;
        //freopen("hdu4639.txt","r",stdin);
        cin>>t;
        init();
        int k=1;
        while(t--)
        {
            int count=0;
            cin>>s;
             result=1;
            
             for(int i=0;i<s.length();)
                {
                    if(s[i]=='h'&&s[i+1]=='e') {count++;i+=2;}
                    else{
                        if(count>=2)
                        result=(result*f[count])%M;
                        i++;count=0;
                    }
                    
                }
                if(count>=2) result=(result*f[count])%M;
                cout<<"Case "<<k++<<": "<<result<<endl;
        }
        return 0;
    }
  • 相关阅读:
    浏览器组成
    Go!!!
    产假计算器地址
    flex 纵向布局,垂直换行,没有撑开父盒子宽度,求解??
    毕业档案
    进程与线程
    事件循环
    回调地狱
    错误优先回调
    组件 v-if 小心哦
  • 原文地址:https://www.cnblogs.com/xiaozhuyang/p/hdu4639.html
Copyright © 2011-2022 走看看