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,输出一个奇怪的东西: 解题思路:首先看数据,数据不大,开始简单快乐的暴力之路 ...
随机推荐
- 实现在edittext中任意插入图片
Myedittext: public class MyEditText extends EditText { public MyEditText(Context context) { super(co ...
- docker + ubuntun 安装show doc
基本安装步骤 Ubuntu Docker 安装 Docker 支持以下的 Ubuntu 版本: Ubuntu Precise 12.04 (LTS) Ubuntu Trusty 14.04 (LTS) ...
- Cannot proceed with delivery: an existing transporter instance is currently uploading this package
当使用Xcode的Application Loader上传spa到AppStore的过程中,如果临时中断,当你再次进行上传的过程时,就发发现如下现象: Cannot proceed with deli ...
- with as 和update ,Delete,insert
这个SQL写了很久的时间,感觉pgSQL的很是麻烦. with as 先命名一个表出来,就可以当成临时表用. WITH tmp AS ( SELECT MAX(mgi.inner_cd) AS inn ...
- [TI-Sitara]启动流程
前段时间在准备AM437x启动相关的一些事情,对MLO.SPL等事情也是有些糊涂,于是分享下面这篇文章 转自:http://blog.csdn.net/psvoldemort/article/deta ...
- 数论 + 容斥 - HDU 4059 The Boss on Mars
The Boss on Mars Problem's Link Mean: 给定一个整数n,求1~n中所有与n互质的数的四次方的和.(1<=n<=1e8) analyse: 看似简单,倘若 ...
- css实现圆角三角形例子(无图片)
css实现圆角三角形例子(无图片) 以前我们做圆角时都会要用到图片来实现,今天我给大家整理的这款css圆角效果是不需要图片的纯css实现的哦,下面我们一起来看看吧. 效果如下图所示 三角形所对方向&q ...
- 《javascript征途》学习笔记
基础 1. 只有函数有作用域 2. 如果在<script src>的src 中设置了src特性,则script元素包含的任意代码就无效了.应该分开放到不同的script块中. 3. 外部j ...
- 【NOIP模拟题】Permutation(dp+高精度)
首先我们可以这样想: 设状态f[i, j]表示1-i序列有j个'<'的方案数 那么考虑转移 因为i比i-1大,所以可以考虑从i-1来转移.首先i是要插入1-i-1这个序列的,所以我们可以思考插入 ...
- RabbitMQ用户角色及权限控制 -2
1.RabbitMQ的用户角色分类: none.management.policymaker.monitoring.administrator none 不能访问 management plugin ...