Blue Jeans---poj3080(kmp+暴力求子串)
题目链接:http://poj.org/problem?id=3080
题意就是求n个长度为60的串中求最长公共子序列(长度>=3);如果有多个输出字典序最小的;
我们可以暴力求出第一个串的所有子串,然后判断是否是其他的子串即可;
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std; const int N = ;
char s[N][];
int Next[N]; void GetNext(char a[], int n)
{
int i=,j=-;
Next[]=-;
while(i<n)
{
if(j==- || a[i]==a[j])
Next[++i] = ++j;
else
j=Next[j];
}
} int kmp(char a[], char b[], int n)
{
int i=, j=;
while(i<)
{ if(j==- || b[i] == a[j])
i++, j++;
else
j = Next[j];
if(j==n)
return true;
}
return false;
} int main()
{
int T, n,f;
scanf("%d", &T);
while(T--)
{
char ans[N]="Z";
scanf("%d", &n);
for(int i=; i<n; i++)
scanf("%s", s[i]);
for(int len=; len>=; len--)///子串的长度;
{
for(int i=; i<=-len; i++)///子串的开始下标;
{
char subStr[N]= {};
strncpy(subStr, s[]+i, len); GetNext(subStr, len);///从subStr中得到Next;
int flag = ;
for(int j=; j<n; j++)
{
if(!kmp(subStr, s[j], len))
{
flag=;
break;
}
}
if(flag == && strcmp(ans, subStr)>)
strcpy(ans, subStr);
}
f=;
if(ans[]!='Z')
{
printf("%s\n", ans);
f=;
break;
}
}
if(f==)
printf("no significant commonalities\n"); }
return ;
}
Blue Jeans---poj3080(kmp+暴力求子串)的更多相关文章
- POJ - 3080 Blue Jeans  【KMP+暴力】(最大公共字串)
		
<题目链接> 题目大意: 就是求k个长度为60的字符串的最长连续公共子串,2<=k<=10 限制条件: 1. 最长公共串长度小于3输出 no significant co ...
 - poj3080 Blue Jeans【KMP】【暴力】
		
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions:21746 Accepted: 9653 Descri ...
 - POJ 3080 Blue Jeans 找最长公共子串(暴力模拟+KMP匹配)
		
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20966 Accepted: 9279 Descr ...
 - POJ Blue Jeans [枚举+KMP]
		
传送门 F - Blue Jeans Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
 - POJ 3080 Blue Jeans (字符串处理暴力枚举)
		
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 21078 Accepted: ...
 - Blue Jeans[poj3080]题解
		
题目 Description - The Genographic Project is a research partnership between IBM and The National Geog ...
 - POJ3080 Blue Jeans 题解 KMP算法
		
题目链接:http://poj.org/problem?id=3080 题目大意:给你N个长度为60的字符串(N<=10),求他们的最长公共子串(长度>=3). 题目分析:KMP字符串匹配 ...
 - POJ 3080 Blue Jeans (KMP)
		
求出公共子序列 要求最长 字典序最小 枚举第一串的所有子串 然后对每一个串做KMP.找到目标子串 学会了 strncpy函数的使用 我已可入灵魂 #include <iostre ...
 - poj-3080(kmp+暴力枚举)
		
题意:给你多个字符串,问你这几个字符串的最长公共子串是哪个,如果有多个,输出字典序最大的那个,如果最长的公共子串长度小于3,输出一个奇怪的东西: 解题思路:首先看数据,数据不大,开始简单快乐的暴力之路 ...
 
随机推荐
- vs2015开发so动态库linux
			
#include <stdio.h> #include <dlfcn.h> typedef int(*fn_max)(int a, int b); int main() { p ...
 - 解决select菜单边框无法设置的问题
			
<span style="border:1px solid green; position:absolute; overflow:hidden"><select ...
 - 1.phpmyadmin的配置
			
一.解压后得到一个目录,进入相关目录中的\libraries目录,找到 config.default.php文件copy份到上级目录,并命名为config.inc.php ; 二.修改confing. ...
 - MongoDB(二):MongoDB简介及安装
			
一.MongoDB 1.简介 MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.旨在为WEB应用提供可扩展的高性能数据存储解决方案.在高负载的情况下,添加更多的节点(分布式 ...
 - JsonNode、JsonObject常用方法
			
最近项目中要用json,闲暇时间,对json进行下总结. 1.JsonNode 项目中用到的jar包 import com.fasterxml.jackson.core.JsonParseExce ...
 - UML概述
			
UML (Unified Modeling Language)统一建模语言,是描述.构造和文档化系统制品的可视化语言,是一种图形表示法. UML用途:UML是一种工具,主要用在我们对软件用面向对象的方 ...
 - 【BZOJ】1699: [Usaco2007 Jan]Balanced Lineup排队(rmq/树状数组)
			
http://www.lydsy.com/JudgeOnline/problem.php?id=1699 我是用树状数组做的..rmq的st的话我就不敲了.. #include <cstdio& ...
 - erlang的进程池。
			
转自: http://blog.sina.com.cn/s/blog_96b8a1540101542m.html 主要组成部分: https://github.com/devinus/poolboy ...
 - 360破解大赛crackme分析--之3DES解密附加数据
			
具体的分析这里有.本人仅仅是对这里面有趣的算法进行了一些学习 分析链接 这次是逆向的使用3DES解密的过程中的内容: 使用微软的crypt库 使用3DES解密程序中的附加数据 代码: VOID enc ...
 - java.lang.ClassNotFoundException: org.codehaus.jackson.JsonProcessingException 异常解决方案
			
在SpringMVC中使用Jackson实现json输出时配置如下: <!-- 输出对象转JSON支持 --> <bean id="stringConverter" ...