ACdream HUT新生摸底训练赛 D - 娜娜梦游仙境系列——村民的怪癖 KMP
2015-04-13 19:32
309 查看
解题思路:用next数组进行跳转次数统计。
解题代码:
View Code
解题代码:
// File Name: d.cpp // Author: darkdream // Created Time: 2015年04月12日 星期日 19时40分52秒 #include<vector> #include<list> #include<map> #include<set> #include<deque> #include<stack> #include<bitset> #include<algorithm> #include<functional> #include<numeric> #include<utility> #include<sstream> #include<iostream> #include<iomanip> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<ctime> #define LL long long using namespace std; int n ; int t; char str[300000]; int len ; int next[300000]; void get_next() { next[0] = -1; int k = -1; int j =0 ; while(j < len ) { if(k == -1 || str[j] == str[k]) { ++ k ; ++ j ; next[j] = k ; }else{ k = next[k]; } } } int find(int x) { if(x == 0) return 0; return 1+find(next[x]); } int main(){ scanf("%d",&t); while(t--) { scanf("%s",str); len = strlen(str); scanf("%s",&str[len]); len = strlen(str); get_next(); printf("%d\n",find(len)); } return 0; }
View Code
相关文章推荐
- ACdream HUT新生摸底训练赛 B - 娜娜梦游仙境系列——跳远女王 bfs
- ACdream HUT新生摸底训练赛 C 娜娜梦游仙境系列——吃不完的糖果 DP
- ACdream HUT新生摸底训练赛 E - 娜娜梦游仙境系列——莫名其妙的插曲 数论
- ACdream HUT新生摸底训练赛 F - 娜娜梦游仙境系列——多民族王国 并查集
- ACdreamXMUT新生摸底训练赛C - 娜娜梦游仙境系列——吃不完的糖果
- ACdream HUT新生摸底训练赛 A 娜娜梦游仙境系列——诡异的钢琴 水
- D - 娜娜梦游仙境系列——村民的怪癖
- D - 娜娜梦游仙境系列——村民的怪癖
- 娜娜梦游仙境系列——跳远女王 (最短路
- F - 娜娜梦游仙境系列——多民族王国
- 娜娜梦游仙境系列——跳远女王 (最短路
- 娜娜梦游仙境系列——跳远女王 (最短路
- B - 娜娜梦游仙境系列——跳远女王
- 娜娜梦游仙境系列——多民族王国
- - 娜娜梦游仙境系列——梦醒
- 娜娜梦游仙境系列——多民族王国
- G - 娜娜梦游仙境系列——梦醒
- 娜娜梦游仙境系列——多民族王国
- 娜娜梦游仙境系列——跳远女王 (最短路
- 娜娜梦游仙境系列——多民族王国