FJNU摸底赛_acdream1683(KMP)
来源:互联网 发布:windows录音机 编辑:程序博客网 时间:2024/05/17 08:42
题意:
给出两个串;
求两个连接后;
能找出几个前缀等于后缀的;
如ababc abaaba
前缀a 后缀a 前缀aba 后缀aba还有整串;
一共3个;
思路:
用KMP求出next数组;
然后先判断最后一位的next,它的值就是最大的前缀和后缀相同的长度;这时候比如前4个和后4个相同了,那么如果还有前后缀相同,前缀长度肯定是小于4,那我们直接那找第四位的next就行了;
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 100005;char s1[2 * N];char s2[N];int next[N];void get_next(char s[],int next[]) { int i,j; i = 0 ; j = -1; next[0] = -1; int len = strlen(s);while(i < len){if(j == -1 || s[i] == s[j]) {i++;j++;next[i] = j;}elsej = next[j];}}int sum(int x){if(x == 0)return 0;return 1 + sum(next[x]);}int main() {int T;scanf("%d",&T);while(T--){scanf("%s%s",s1,s2);strcat(s1,s2);int len = strlen(s1);get_next(s1,next);printf("%d\n",sum(len));}return 0;}
0 0
- FJNU摸底赛_acdream1683(KMP)
- FJNU摸底赛_acdream1680(水题)
- FJNU摸底赛_acdream1681(bfs)
- FJNU摸底赛_acdream1682(dp)
- FJNU摸底赛_acdream1684(博弈)
- FJNU摸底赛_acdream1686(数学)
- FJNU摸底赛_acdream1685(并查集)
- 摸底
- XMUT新生摸底训练赛
- GWXZ摸底考模拟赛
- ACdreamXMUT新生摸底训练赛C
- FJNU
- nyoj809摸底
- nyoj 摸底
- ACM学习感悟——摸底赛(并查集)
- nyoj-809-摸底
- FJNU字符串
- FJNU字符串
- 3.memcached的删除机制和发展方向
- hdu2147
- 无巧不成书
- 4.memcached的分布式算法
- Qt学习之路_14(简易音乐播放器)
- FJNU摸底赛_acdream1683(KMP)
- mysql dbi 取多列数据
- 使用makeself创建安装文件
- 隋唐演义 读后感
- 5.memcached的应用和兼容程序
- 学英语《每日一歌》之trouble is a friend
- js判断上传文件的大小,及确认文件是否在本地存在,兼容firefox、chrome、ie等浏览器
- Nginx+tomcat+memcached负载均衡集群中共享session的方法
- 黑马程序员:操作基本数据类型的流对象DataStream