zoukankan      html  css  js  c++  java
  • hdu 4639 2013多校第四场 hehe Fibonacci 数列,组合计数,字符串处理

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4639

    题目思路: 首先我们取出所有he这样的东西,考察连续的k个“he"串,通过找规律+数学归纳法容易证明有f【k】种方式,其中f为Fibonacci数列, 那么再统计这个串中有多少个这样的块就可以了,他们乘起来。

    代码:

    #include<iostream>
    #include<string>
    using namespace std;;
    
    int p[10000];
    
    
    void pre()
    {
      p[1]=1;
      p[2]=2;
    
      for(int i=3;i<10000;i++)
        p[i]=(p[i-1]+p[i-2])%10007;
    
    
    
    }
    
    int main()
    {
    
        pre();
    
        int T;
        cin>>T;
        string s;
        int index=0;
        while(T--)
        {
            index++;
           cin>>s;
           int length=s.length();
           if(length<2)
           {
             cout<<1<<endl;
             continue;
           }
    
           long long ans=1;
           s+="xx";
           int count=0;
           for(int i=0;i<=length-2;i++)
           {
              if(s[i]=='h'&&s[i+1]=='e')
              {
                 count++;
                 if(s[i+2]=='h'&&s[i+3]=='e')
                 {
    
                     i++;
                     continue;
                 }
    
                 else
                 {
                     ans=(ans*p[count])%10007;
                     count=0;
                 }
              }
           }
    
    
           cout<<"Case "<<index<<": "<<ans<<endl;
    
    
        }
    }


  • 相关阅读:
    socketserver模块
    socketserver密文测试
    Less11-Less12
    Less-5-03
    google语法
    Nmap
    01真的很简单
    kali linux 安装后的必要修改
    SQLMap-02
    SQLMap-01
  • 原文地址:https://www.cnblogs.com/814jingqi/p/3310433.html
Copyright © 2011-2022 走看看