3450

/*
KMP来做532ms
*/// include file
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cctype>
#include <ctime>#include <iostream>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <bitset>
#include <strstream>#include <algorithm>
#include <string>
#include <vector>
#include <queue>
#include <set>
#include <list>
#include <functional>using namespace std;// typedef
typedef long long LL;
typedef unsigned long long ULL;// 
#define read freopen("in.txt","r",stdin)
#define write freopen("out.txt","w",stdout)
#define FORi(a,b,c) for(int i=(a);i<(b);i+=c)
#define FORj(a,b,c) for(int j=(a);j<(b);j+=c)
#define FORk(a,b,c) for(int k=(a);k<(b);k+=c)
#define FORp(a,b,c) for(int p=(a);p<(b);p+=c)#define FF(i,a)    for(int i=0;i<(a);i+++)
#define FFD(i,a)   for(int i=(a)-1;i>=0;i--)
#define Z(a) (a<<1)
#define Y(a) (a>>1)const double eps = 1e-6;
const double INFf = 1e10;
const int INFi = 1000000000;
const double Pi = acos(-1.0);template<class T> inline T sqr(T a){return a*a;}
template<class T> inline T TMAX(T x,T y)
{if(x>y) return x;return y;
}
template<class T> inline T TMIN(T x,T y)
{if(x<y) return x;return y;
}
template<class T> inline void SWAP(T &x,T &y)
{T t = x;x = y;y = t;
}
template<class T> inline T MMAX(T x,T y,T z)
{return TMAX(TMAX(x,y),z);
}// code begin
#define MAXN 4001
#define MAXM 202char dc[MAXN][MAXM];
int Len[MAXN];
int N;
int mins;
int minst;char P[MAXM];
int Ps;
int Ts;
int next[MAXM];char ans[MAXM];void CalNext()
{next[0] = 0;next[1] = 0;int j;FORi(2,Ps+1,1){j = next[i-1];while(true){if(P[j]==P[i-1]){next[i] = j+1;break;}if(j==0){next[i] = 0;break;}j = next[j];}}
}bool KMP(int cur)
{Ts = Len[cur];int i=0;int j=0;while(true){if(j==Ts) break;if(P[i]==dc[cur][j]){i++;j++;if(i==Ps){return true;}}else if(i>0){i=next[i];}elsej++;}return false;
}bool Isok()
{FORi(0,N,1){if(i!=mins){if(!KMP(i)){return false;}}}return true;
}int main()
{read;write;while(scanf("%d",&N)!=-1){if(N==0) break;minst = MAXM;FORi(0,N,1){scanf("%s",dc[i]);Len[i] = strlen(dc[i]);if(Len[i]<minst){minst = Len[i];mins = i;}}//找到了最短的子串 mins;for(int i=0;i<MAXM;i++)ans[i] = 'z';ans[MAXM] = 0;bool f=false;for(int len=Len[mins];len>0;len--){Ps = len;for(int i=0;i+len<=Len[mins];i++){strncpy(P,dc[mins]+i,len);P[len] = 0;CalNext();//然后和其余的串比较if(Isok()){if(strcmp(P,ans)<0){strcpy(ans,P);f=true;}}}if(f) break;}if(f) printf("%s\n",ans);else printf("IDENTITY LOST\n");}return 0;
}

转载于:https://www.cnblogs.com/ac2012/archive/2011/03/25/1995380.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GMF 教程 Mindmap 5

2019独角兽企业重金招聘Python工程师标准>>> 这一部分主要实现的是&#xff1a; 使用扩展的Plug-in为我们的Diagram添加一个自定义动作 Creating a Customization Plug-in 尽管可以给生成的代码添加备注generated NOT来避免下次重新生成代码时覆盖我们修改的代码…

invalid use of incomplete type struct 或者是class的解决办法

在写完代码之后进行编译时&#xff0c;提示"invalid use of incomplete type struct" 或者 "invalid use of incomplete type class" 的解决办法&#xff1a; 1、对应的头文件要包含&#xff0c;这个是必须的。 当时因为没有包含头文件&#xff0c;也汇报…

ASP.NETLinkButton的Click事件中获取CommandArgument的值

/// <summary> /// LinkButton的onClick事件 /// </summary> /// <param name"sender"></param> /// <param name"e"></param> protected void linkBtnName_Click(object sender, EventArgs e) { …

Linux的proc文件系统详解

引用自&#xff1a;http://bbs.chinaunix.net/thread-2002769-1-1.html Linux系统上的/proc目录是一种文件系统&#xff0c;即proc文件系统。与其它常见的文件系统不同的是&#xff0c;/proc是一种伪文件系统&#xff08;也即虚拟文件系统&#xff09;&#xff0c;存储的是当前…

Jmeter(四十二)_控制器下遍历一组参数

概述 在接口自动化的过程中&#xff0c;经常遇到需要遍历的参数组。jmeter在中&#xff0c;foreach控制器可以实现遍历参数&#xff0c;但是只能有一个入参。一旦遇到数组&#xff0c;foreach控制器表示我也无能为力。。。 为了解决这个问题&#xff0c;今天教大家一个实现数组…

模板类的定义和实现可以分开吗?

一个模板&#xff0c;在a.h中定义&#xff0c;在a.cc中实现&#xff0c;这样可以吗&#xff1f; 答案是不行的。 模板的定义和实现需要都写在头文件中。 有一种特例可以实现模板的定义和实现分别放在a.h 和 a.cc中&#xff0c;但是需要指定参数的类型。 但是这样导致每传入一…

业界资讯:adobe air 2.7 beta发布

http://labs.adobe.com/technologies/flashplatformruntimes/air2-7/ 前一段时间adobe 更新air 2.6的消息提升了air 性能 使进去移动平台性能得到改善&#xff0c;而今天adobe lab 再次放出adobe air2.7 beta版本 更新消息&#xff0c;这次更新会大幅提升 和改进一些功能&#…

JS 停留几秒后返回上一页

2019独角兽企业重金招聘Python工程师标准>>> <script type"text/javascript" language"javascript"> var i 5; intervalid setInterval("fun()", 1000); function fun(){if(i0){history.go(-1);clearInterval(intervalid);}i…

spring boot 分布式锁组件 spring-boot-klock-starter

基于redis的分布式锁spring-boot starter组件&#xff0c;使得项目拥有分布式锁能力变得异常简单&#xff0c;支持spring boot&#xff0c;和spirng mvc等spring相关项目 快速开始 spring boot项目接入 1.添加lock starter组件依赖&#xff0c;目前还没上传到公共仓库&#xff…

std::string中的find_first_of()和find_last_of()函数

编程语言: c/linux 在std::string中&#xff0c;有时需要找到一个string中最后一个或者第一个以某个特定的字符开始的位置或者下标&#xff0c;这时就需要使用find_first_of()和find_last_of()函数。 find_first_of() &#xff1a; 找到一个string中第一个以 某个 字符开始的…

Adsense加入黑名单的预防办法

说说预防被例如黑名单的办法。 GOOGLE同样知道竞争对手在点你的广告&#xff0c;这也会被记录在案&#xff08;Adsense同样知道他们的地理位置&#xff09;。 如果发现网站广告点击有异常情况&#xff0c;应该及时通知Google相关人员。万一被Google Adsense除名了&#xff0c;也…

【学习笔记4】Action名称的搜索顺序

2019独角兽企业重金招聘Python工程师标准>>> 1&#xff0e;获得请求路径的URI&#xff0c;例如url是&#xff1a;http://server/struts2/path1/path2/path3/test.action 2&#xff0e;首先寻找namespace为/path1/path2/path3的package&#xff0c;如果不存在这个pac…

std::map中的lower_bound与upper_bound

最近在工作中遇到了std::map中的lower_bound与upper_bound&#xff0c;再次记录下其功能和使用方式。 std::map<char, int> mp; mp.lower_bound<key> &#xff1a; 返回的是第一个大于、等于key的iterator&#xff0c;如果没有则返回空。 mp.upper_bound<key…

函数初识

函数#1.函数的定义 def#2.函数的调用#3.函数的返回值 return#4.函数的参数 #形参&#xff1a; # 位置参数 &#xff1a; 必须传 # *args &#xff1a;可以接收任意多个位置参数 # 默认参数 &#xff1a; 可以不传 # **kwargs &#xff1a; 可以…

MongoDB 初学

大致看了一点 MongoDB. 回忆一下&#xff0c;这个数据库有这样一些特征&#xff1a; Schema-less: 不需要预先定义 schema. 数据以 document 的方式存储&#xff0c;document 大致上相当于关系数据库中的一行记录。document 存放在 collection 中间&#xff08;相当于关系数据库…

STL中的set/map

std::set/std::map底层实现的机制是红黑树&#xff0c;树中的数据是有序的&#xff0c;那么进行插入、删除、查找时的平均时间复杂读O(logN),以2为低的对数N。set相当于map中的key&#xff0c;map中的key不能有重复的并且按升序进行排序&#xff0c;如果结构体作为map中的key&a…

IoC容器Autofac(3) - 理解Autofac原理,我实现的部分Autofac功能(附源码)

上篇文章中&#xff0c;举了一个Autofac的简单例子&#xff0c;园友eflay反应: “虽然对autofac架构原理还是完全不懂&#xff0c;不过基本是明白ioc的用途了&#xff0c;会从已注册的类中找出符合接口的类来调用构造函数进行构造” 所以这篇文章&#xff0c;还是针对上次的例子…

STATS 4014 Advanced Data Science

STATS 4014Advanced Data ScienceAssignment 3Jono TukeSemester 1 2019CHECKLIST: Have you shown all of your working, including probability notation where necessary? : Have you given all numbers to 3 decimal places unless otherwise stated? : Have you include…

铁血规则:事件预订与取消预订

在编码的时候&#xff0c;我们经常预订某个事件来处理它&#xff0c;但很少取消事件的预订&#xff0c;这种做法可能导致程序在运行时出现一些异常。 如果你的某个用于处理事件的对象不是在运行期内永久存在的&#xff08;比如&#xff0c;不是Singleton对象&#xff09;&#…

MySQL中的insert ignore into讲解

最近工作中&#xff0c;使用到了insert ignore into语法&#xff0c;感觉这个语法还是挺有用的&#xff0c;就记录下来做个总结。 insert ignore into : 忽略重复的记录&#xff0c;直接插入数据。 包括两种场景&#xff1a; 1、插入的数据是主键冲突时 insert ignore into…