poj 3450 Corporate Identity
2016-04-29 20:28
225 查看
和上一道题。。 一模一样。
#include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<set> #include<iostream> using namespace std; char a[4010][210]; char test[210]; int next[210]; set<string>ans; int main() { int n; while(cin>>n&&n) { for(int i=0;i<n;i++) { cin>>a[i]; } ans.clear(); int len=strlen(a[0]); for(int i=len;i>=1;i--) { for(int j=0;j<=len-i;j++) { char ch=a[0][j+i]; a[0][j+i]='\0'; strcpy(test,a[0]+j); a[0][j+i]=ch; next[0]=-1; int k=0; int p=next[0]; while(k<i)//build next; { if(p==-1||test[k]==test[p]) { k++; p++; next[k]=p; } else { p=next[p]; } } int flag=0; for(int who=1;who<n;who++) { k=0; p=0; int ok=0; while(k<len) { if(p==-1||a[who][k]==test[p]) { p++; k++; } else { p=next[p]; } if(p==i) { ok=1; break; } } if(!ok) { flag=1; break; } } if(!flag) { ans.insert(test); } } if(!ans.empty()) { cout<<*ans.begin()<<endl; break; } } if(ans.empty()) { cout<<"IDENTITY LOST"<<endl; } } return 0; }
相关文章推荐
- KMP算法的C#实现方法
- JavaScript中数据结构与算法(五):经典KMP算法
- 字符串算法--KMP--Java实现
- 初学ACM - 组合数学基础题目PKU 1833
- KMP算法(转载)
- kmp算法实现
- POJ ACM 1001
- POJ ACM 1002
- 1611:The Suspects
- POJ1089 区间合并
- KMP算法详解
- linux kernel data struct: KMP算法实现
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points
- POJ-2409-Let it Bead&&NYOJ-280-LK的项链
- POJ-1695-Magazine Delivery-dp
- POJ1523 SPF dfs
- POJ-1001 求高精度幂-大数乘法系列