hdu_1358_kmp_next_数组简单应用
来源:互联网 发布:mindmap mac 破解版 编辑:程序博客网 时间:2024/06/05 09:23
题意:
Sample Input
3
aaa
12
aabaabaabaab
0
Sample Output
Test case #1
2 2
3 3
Test case #2
2 2
6 2
9 3
12 4
告诉你字符串的长度,给你字符串s
让你求字符串1-i中可以存在k个子串构成i-i这个串;
输出当前i 和k;
解;
直接想到nxt数组求循环节,但是要考虑循环节根本不存在的情况,就是nxt[i]=0的情况;
#include<bits/stdc++.h>using namespace std;const int N=(int) 1e6+10;int m,nxt[N];void getnext(char *s){ int i=0,j=-1; nxt[0]=-1; while(i<m) { if(j==-1||s[i]==s[j]) nxt[++i]=++j; else j=nxt[j]; }}int main(){ char s[N]; int t,i,j; int k=0; while(cin>>t&&t) { scanf("%s",s); m=strlen(s); getnext(s); for(i=1;i<=m;i++) cout<<i<<" "<<nxt[i]<<endl; printf("Test case #%d\n",++k); for(i=2; i<=t; i++) { int len=i-nxt[i]; if(i%len==0&&len!=i) { printf("%d %d\n",i,i/len); } } puts(""); } return 0;}
阅读全文
0 0
- hdu_1358_kmp_next_数组简单应用
- 数组的简单应用
- 数组简单应用
- 树状数组简单应用
- 数组的简单的应用
- java数组的简单应用
- 二维数组的简单应用
- 数组,学会简单应用难!
- 数组的简单应用 一
- Java数组简单知识点应用
- 对象数组的简单应用
- HDOJ1556 树状数组简单应用
- hash数组的一个简单应用
- 树状数组的简单应用(夏夜砍树)
- oracle数组的简单介绍及应用
- hdu 3874 Necklace【树状数组简单应用】
- hdu 1541 Stars【树状数组简单应用】
- POJ 1656 二维树状数组简单应用
- js排序算法详解-冒泡排序
- 用匿名子类来启动一个线程
- 【leetcode】414. Third Maximum Number(Python & C++)
- java上机心得报告2
- OPC UA
- hdu_1358_kmp_next_数组简单应用
- 内网IP和公网IP的区别
- 动态规划
- 发展在何方
- 在 Android 上,一个完整的 UDP 通信模块应该是怎样的?
- Hello world
- springboot linux启动方式
- 一个小项目实现上啦刷新下拉加载
- 最简单的缓存到SD卡