程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU4639+字符串

HDU4639+字符串

編輯:C++入門知識

/*
字符串
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<map>
#include<stack>
#include<set>
#include<math.h>
using namespace std;
typedef long long int64;
//typedef __int64 int64;
typedef pair<int64,int64> PII;
#define MP(a,b) make_pair((a),(b)) 
const int maxn = 10090;
const int mod = 10007;
const int inf = 0x7fffffff;
const double pi=acos(-1.0);
const double eps = 1e-8;
int Fib[ maxn ];
void init(){
	Fib[ 0 ] = 1;
	Fib[ 1 ] = 1;
	for( int i=2;i<maxn;i++ ){
		Fib[i] = Fib[i-1]+Fib[i-2];
		Fib[i] %= mod;
	}
}
int main(){
	init();
	int Case = 1;
	int T;
	scanf("%d",&T);
	while( T-- ){
		char s[ maxn ];
		printf("Case %d: ",Case++);
		int ans = 1;
		scanf("%s",s);
		int len = strlen(s);
		for( int i=0;i<len;i++ ){
			int cnt = 0;
			if( i+1<len&&s[i]=='h'&&s[i+1]=='e' ){
				//cnt = 1;
				int Index = i;
				bool f = false;
				while( Index+1<len ){
					if( s[Index]=='h'&&s[Index+1]=='e' ){
						cnt ++ ;
						Index += 2;
						i = Index;
					}
					else{
						if( cnt ) i--;
						if( cnt ) ans = ans*Fib[ cnt ]%mod;
						f = true;
						break;
					}
				}
				if( f==false&&cnt )  ans = ans*Fib[ cnt ]%mod;
			}
		}
		printf("%d\n",max(ans%mod,1));
	}
	return 0;
}
		

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved