请不要随便指点别人该怎么做、每个人的人生都应该自己掌握、你给不了别人一切、你也不懂别人的忧伤、
微笑不代表快乐、哭泣不一定悲伤
不努力怎么让那些关心你的人幸福、不努力怎么让那些看不起你的人绝望、
我用生命在奋斗――lx_Zz
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
――――――――――――――――――――――――― 华丽的分割线 ――――――――――――――――――――――――――――
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
| 10678686 | 2014-05-05 03:11:35 | Accepted | 1711 | 468MS | 4224K | 1865 B | C++ |
经过验证、发现我刚刚YY的算法目测是正确的、、O(∩_∩)O哈哈~效果还不错。。。→_→
淡淡改了一下、毕竟都是类似的题、废话不多说、直接上代码:
#include#include #include using namespace std; int str1[10005]; int str2[1000005]; int next[10005]; int main() { int T; scanf("%d",&T); while(T--) { int n,m; scanf("%d%d",&n,&m); for(int i=0;i =len1) { ans=i-m+1; break; } } else { while(str1[j]!=str2[i]) { if(j==0) { ff=1; break; } j=next[j-1]; if(j==-1) { ff=1; break; } } if(ff) { if(str1[0]==str2[i]) { i++;j=1; } else { i++;j=0; } } } } printf("%d\n",ans); } return 0; }