Hilary动态规划DP

Hilary

Time Limit:1000MS  Memory Limit:65536K
Total Submit:38 Accepted:4

Description

Dearway is fond of sleeping, but he always feels it is not enough even though 8 hours. Therefore he usually naps in class!!! After he wakes up he sometimes would write a string on a paper. This is a special string which always includes “hilary”. Now dearway wants you to write a program to calculate how many “hilary”s in the string? Hilary comes from different position in the string is considered different “hilary”s.
For example , “hhillary” includes 4 “hilary”s.

Input

The first line is a inter T. Then T lines strings follow. Each string is composed of lower letters and the length of each string is less than 1000.

Output

Output how many hilary each string includes.

Sample Input

3
hilary
hhillary
ihlary

 

Sample Output

1
4
0

 

Source

 根据GCJ的一道题改编

在一个字符串中搜索出现了多少次的目标字符串

小范围内可以用DFS,甚至枚举做

大数据只有用DP

效率O(mn)

dp[0]++ ,if(s[i]==key[0])

dp[j]+=dp[j-1] ,if(s[i]==key[j]) 1<j<m

#include<stdio.h> int main() { int t; char key[]="hilary"; scanf("%d",&t); while(t--) { char s[1005]; scanf("%s",s); int i,j,a[8]={0}; for(i=0;s[i];i++) { if(s[i]=='h') a[0]++; for(j=1;j<6;j++) if(s[i]==key[j]) a[j]+=a[j-1]; } printf("%d/n",a[5]); } }

 

你可能感兴趣的:(Hilary动态规划DP)