HDU 1711 Number Sequence
来源:互联网 发布:中日韩围棋 知乎 编辑:程序博客网 时间:2024/06/06 02:49
Compilation Error 了两次,然后过了QAQ
第一次是因为,我用了next[]数组,数组名字应该是和类里面变量或者函数重名了;
第二次是因为,我复制的时候漏了<iostream>;
kmp算法的模板题目。
#include <iostream>#include <stdio.h>#include <queue>#include <algorithm>#include <string>#include <cstring>using namespace std;const int maxm=1000000+5;int test,n,m;int p[maxm],k[maxm];int nexta[maxm];void nextak(){ int i,j; i=0; j=-1; nexta[0]=-1; while(i<m-1){ if(j==-1 || k[j]==k[i]){ if(k[j+1]==k[i+1]) nexta[++i]=nexta[++j]; else nexta[++i]=++j; } else j=nexta[j]; }}//j=-1,i=0, k[0]=k[1] nexta[1]=nexta[0] else nexta[1]=0int kmp(){ int i,j; i=j=0; while(i<n &&j<m){ if(j==-1 ||k[j]==p[i]){ j++; i++; } else j=nexta[j]; } if(j==m) return i-m; else return -2;}int main(){ scanf("%d",&test); while(test--){ cin>>n>>m; for(int i=0;i<n;i++) scanf("%d",&p[i]); for(int i=0;i<m;i++) scanf("%d",&k[i]); //nexta 数组 nextak(); //KMP int ans=kmp()+1; cout<<ans<<endl; } return 0;}
我用的是KMP的优化版本~
阅读全文
0 0
- hdu 1711 Number Sequence
- hdu 1711 Number Sequence
- hdu 1711 Number Sequence
- Hdu-1711 Number Sequence
- hdu 1711 Number Sequence
- HDU 1711 Number Sequence
- HDU 1711 Number Sequence
- hdu 1711 Number Sequence
- HDU-1711-Number Sequence
- hdu 1711 Number Sequence
- Hdu 1711 - Number Sequence
- hdu 1711 Number Sequence
- HDU 1711 Number Sequence
- HDU 1711 Number Sequence
- HDU-Number Sequence -1711
- hdu 1711 number sequence
- HDU 1711 Number Sequence
- Number Sequence hdu 1711
- UnityShader从入门到放弃(五)漫反射—逐片元光照
- 简易贪食蛇-C语言实现
- 对象的查询和设置(JS高级)
- extern作用详解
- 排序-1-冒泡排序
- HDU 1711 Number Sequence
- 【教程】一、eclipse集成Tomcat服务器并部署项目
- 线程--同步函数锁是this
- Hibernate第三天
- Android APP通过蓝牙耳机录音可行性分析
- TOMCAT源码分析-生命周期管理2
- Gimp 快速入门(3)
- Java中为什么静态方法不能访问非静态方法
- java策略设计模式