zoukankan      html  css  js  c++  java
  • HDU 4639 Hehe 解题报告

    题意:每一个“hehe”子串都可以看成另一个意思,问一个句子最多能有多少个意思

    解题思路:dp,如果有连续的hehe  把每个hehe当成一个石头,那么就可以抽象成从n个连续的时候中抽出k个石头,且两两不相邻,对于从第二个石头开始的石头,他的结果取决于 取或不取 它前面那个石头的结果  所以    dp[1][i] = d[2][i-1] ; dp[2][i] = d[1][i-1]  所以 dpsum[I] = dpsum[i-1] + dpsum[i-2];是个斐波那契数列。

    解题代码:

     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 #include <string.h>
     5 #define MAXN 10087
     6 char str[MAXN];
     7 int a[MAXN];
     8 void ready()
     9 {
    10   a[1] = 2;
    11   a[2] = 3;
    12 
    13   for(int i = 3;i <= 10086 ; i++)
    14   {
    15     a[i] = (a[i-1] + a[i-2])% 10007;
    16   }
    17 }
    18 
    19 int main()
    20 {
    21   int t ;
    22   scanf("%d",&t);
    23   ready();
    24 
    25   for(int CASE = 1; CASE <= t; CASE ++)
    26   {
    27      scanf("%s",str);
    28      int len = strlen(str);
    29      int  sub = 0;;
    30      int sum = 1 ;
    31      for(int i = 0 ;i < len ;)
    32      {
    33         if(str[i] == 'h' && str[i+1] == 'e'&&str[i+2] == 'h' && str[i+3] == 'e')
    34         {
    35          sub  ++;
    36           i =i + 2;
    37         }
    38         else
    39         {
    40          if(sub != 0 )
    41           sum *= a[sub];
    42         sum = sum % 10007;
    43           sub = 0 ;
    44           i ++;
    45         }
    46      }
    47 
    48      printf("Case %d: %d
    ",CASE,sum);
    49 
    50 
    51   }
    52   return 0  ;
    53 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    诊断
    HIS内号码说明
    ASP.NET Page life cycle
    ASP.NET Simple page life cycle
    java多线程
    ibatis sqlmap
    cglib和asm
    利用ant编译maven项目
    Spring Cache与Tair结合
    USACO 1.2 MILKING COWS
  • 原文地址:https://www.cnblogs.com/zyue/p/3233191.html
Copyright © 2011-2022 走看看