HDU 2087 kmp 계수 누 드 문제

2087 단어 문자열
무늬 있 는 천 조각 을 오리 다.
Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6621    Accepted Submission(s): 4441
Problem Description
꽃무늬 천 조각, 안에 도안 이 있 고 직접 사용 할 수 있 는 작은 장식 이 있 으 며 안에 도 도안 이 있다.주어진 꽃무늬 와 작은 장식 줄 에 대해 서 는 꽃무늬 에서 가능 한 한 몇 개의 작은 장식 줄 을 자 를 수 있 는 지 계산 해 보 세 요.
 
Input
입력 에 일부 데 이 터 를 포함 하고 있 습 니 다. 각각 꽃무늬 와 작은 장식 줄 입 니 다. 그 천 은 모두 가시 적 인 ASCII 문자 로 표 시 됩 니 다. 보 이 는 ASCII 문자 가 몇 개 이 고 천의 무늬 도 몇 가지 무늬 가 있 습 니까?꽃무늬 와 작은 장식 은 1000 자 를 넘 지 않 는 다.\ # 문 자 를 만나면 작업 을 하지 않 습 니 다.
 
Output
출력 은 무늬 천 에서 가장 많이 자 를 수 있 는 작은 장식 개수 입 니 다. 한 조각 도 없 으 면 0 을 성실 하 게 출력 하고 결과 마다 줄 을 바 꿔 야 합 니 다.
 
Sample Input
 
   
abcde a3 aaaaaa aa #
 

Sample Output
 
   
0 3


题意:给定主串和子串,计算在主串里有多少个子串,不允许有重叠。

kmp裸题:

代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=222222;
void getnext(char x[],int m,int next[])
{
       int i,j;
       j=next[0]=-1;
       i=0;
       while(i=m)
              {
                     ans++;
                     j=0;
              }
       }
       return ans;
}
char a[maxn],b[maxn];
int main()
{
       while(~scanf("%s",a))
       {
              if(a[0]=='#')break;
              scanf("%s",b);
              printf("%d
",kmp(b,strlen(b),a,strlen(a))); } return 0; }

좋은 웹페이지 즐겨찾기