题目链接:  HDU http://acm.hdu.edu.cn/showproblem.php?pid=2328

POJhttp://poj.org/problem?id=3450

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;
const int maxn=4444; char x[222],ans[222];
char f[maxn][222];
int next[222]; void strcpy(char *y,int i,int len){
for(int j=0;j<len;++i,++j)
x[j]=y[i];
x[len]='\0';
}
void Get_Next(char *s){
int len=strlen(s);
next[0]=-1;
int i=0, j=-1;
while(i<len){
if(j==-1||s[i]==s[j]){
if(s[++i]==s[++j])
next[i]=next[j];
else next[i]=j;
}
else j=next[j];
}
}
bool KMP(char *s,char *a){//cout<<1<<endl;
int ls=strlen(s), la=strlen(a);
Get_Next(a);
int i=0, j=0;
while(i<ls&&j<la){
if(j==-1||s[i]==a[j])
++i,++j;
else j=next[j];
}
if(j>=la) return true;
return false;
}
int main(){
int n;
while(~scanf("%d",&n),n){
for(int i=0;i<n;++i)
scanf("%s",f[i]);
int len=strlen(f[0]);
bool flag=false;
ans[0]='\0';
for(int i=len;i&&!flag;--i)
for(int j=0,k;j<=len-i;++j){
strcpy(f[0],j,i);
for(k=1;k<n;++k)
if(!KMP(f[k],x))break;
if(k==n)//cout<<x<<endl;
if(!flag||strcmp(ans,x)>0){
strcpy(ans,x); flag=true;
}
}
if(flag)
puts(ans);
else
puts("IDENTITY LOST");
}
return 0;
}

HDU 2328 POJ 3450 KMP的更多相关文章

  1. hdu 2328 Corporate Identity(kmp)

    Problem Description Beside other services, ACM helps companies to clearly state their “corporate ide ...

  2. 字符串截取模板 && POJ 3450、3080 ( 暴力枚举子串 && KMP匹配 )

    //截取字符串 ch 的 st~en 这一段子串返回子串的首地址 //注意用完需要根据需要最后free()掉 char* substring(char* ch,int st,int en) { ; c ...

  3. HDU 3695 / POJ 3987 Computer Virus on Planet Pandora(AC自动机)(2010 Asia Fuzhou Regional Contest)

    Description Aliens on planet Pandora also write computer programs like us. Their programs only consi ...

  4. hdu 2844 poj 1742 Coins

    hdu 2844 poj 1742 Coins 题目相同,但是时限不同,原本上面的多重背包我初始化为0,f[0] = 1;用位或进行优化,f[i]=1表示可以兑成i,0表示不能. 在poj上运行时间正 ...

  5. hdu 5510 Bazinga(字符串kmp)

    Bazinga Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  6. HDU 3265/POJ 3832 Posters(扫描线+线段树)(2009 Asia Ningbo Regional)

    Description Ted has a new house with a huge window. In this big summer, Ted decides to decorate the ...

  7. HDU 2494/POJ 3930 Elevator(模拟)(2008 Asia Regional Beijing)

    Description Too worrying about the house price bubble, poor Mike sold his house and rent an apartmen ...

  8. 扫描线三巨头 hdu1928&&hdu 1255 && hdu 1542 [POJ 1151]

    学习链接:http://blog.csdn.net/lwt36/article/details/48908031 学习扫描线主要学习的是一种扫描的思想,后期可以求解很多问题. 扫描线求矩形周长并 hd ...

  9. hdu 1540/POJ 2892 Tunnel Warfare 【线段树区间合并】

    Tunnel Warfare                                                             Time Limit: 4000/2000 MS ...

随机推荐

  1. 条码的种类(types of barcode)

    条码基本上分为两大类:一维条码(1D Barcode)及二维条码(2D Barcode). 一维条码(1D Barcode) 所谓一维条码,简单的说就是条码只能横向水平方向列印,其缺点是储存的资料量较 ...

  2. QT 强止杀进程

    bool KillProcess(QString ProcessName){  bool result = false; QString str1; HANDLE hSnapShot = Create ...

  3. hdoj Pipe&&南阳oj管道问题&&poj1039(计算几何问题...枚举)

    Pipe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  4. 百度——地图API——IOS v2.0.2—入门篇

    建议高手飘过------ 本以为一个地图的helloworld很简单.实际使用却不是那么回事.就想把地图的头文件和静态库添加到文件中.应该就能用了. baidu提供的xcode工程是支持ios4.3的 ...

  5. for循环语句之兔子生崽

    有一对幼兔,幼兔经过一个月长为小兔,小兔经过一个月长为大兔并且生下一对幼兔,而且大兔每月还会生下一对幼兔,问N个月后有多少对兔子 Console.WriteLine("请输入经过了几个月:& ...

  6. Unbuntu 14.04 下chrome browser bookmark 显示中文乱码解决方案

    来源:http://blog.csdn.net/loveaborn/article/details/29579787 网上有人给出这个问题的解决是通过修改文件/etc/fonts/conf.d/49- ...

  7. 纯JAVA驱动:sqlserver版本不同,驱动与连接也有所区别

    纯JAVA驱动:// 2005 版本:驱动:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");连接:”jd ...

  8. java中排序一个字符串数组

    package test_set_map; import java.util.Arrays; import java.util.Collections; public class Test_Colle ...

  9. http 连接复用

    定义 Http/1.0每次请求都需要建立新的TCP连接,连接不能复用.Http/1.1新的请求可以在上次建立的tcp连接之上发送,连接可以复用. 优点 减少重复进行tcp三次握手的开销,提高效率.注意 ...

  10. 改ucosii的中断禁止和恢复代码,这是一个荒谬的错误【 mrs msr】

    ucosii原来的禁止中断以及恢复中断的代码是最简的,但是使用之前,必须声明一个固定名为 OS_CPU_SR   cpu_sr 的变量,吊在那里感觉很怪. ;********************* ...