/*大致题意:
就是求k个的字符串的最长连续公共子串,
规定:1、 最长公共串长度小于3不输出 2、 若出现等长的最长的子串,则输出字典序最小的串
解题思路:
纠结了几个月放着没做的题目。。一直以为要用KMP或者后缀数组来做。。。然后我就拼命学后缀。。。今天偶然发现直接 暴力 能够达到0ms的效果= =
所以。。。暴力吧。。。不愧为初级的题。。。
暴力思想很简单:(2<=k<=10 && len=60) 数据量很小
开二维DNA[][]保存所有DNA序列
1、 以DNA[0]为母版,顺次截取60个长度length=1的子串dna[],检查其他DNA[i]是否都有子串dna,若是则把dna[]复制到obj[],否则枚举下一个长
度length的子串;若obj与新的dna等长,则比较两者字典序,当dna字典序小时,复制到obj。
2、 第1步循环60次后length+1。顺次截取59个长度length=2的子串dna[],重复1的操作更新obj。。
3、 第2步循环59次后length+1。顺次截取58个长度length=3的子串dna[],继续。。
...........
60、第59步循环2次后length+1。顺次截取1个长度length=60的子串dna[],继续重复操作更新obj。。
61、输出obj
*/
//Memory Time
//248K 16MS
#include<iostream>
#include<string.h>
using namespace std;
const int len=60;
int main(int i,int j)
{
int test;
cin>>test;
for(int t=1;t<=test;t++)
{
int n; //DNA个数
cin>>n;
char** DNA=new char* [n];//DNA是个指针数组,元素指向的对象是个字符串指针,
//new char* 字符指针,大小为n。理解** DNA为二维数组的首地址更简单
for(int p=0;p<n;p++)
{
DNA[p]=new char[len+1];//new char 字符,大小为n,即为长为n的字符串。
cin>>DNA[p];
}
char obj[len+1]; //所有DNA的公共串
int StrLen=0; //最长公共串长度
int length=1; //当前枚举的公共串长度
for(i=0;;i++) //枚举公共串dna[]
{
/*截取DNA[0][]中以pi为起点,长度为length的子串dna[]*/
char dna[len+1];
int pi=i;
if(pi+length>len)
{
length++;
i=-1;
if(length>len)
break;
continue;//continue后任会执行i++。
}
for(j=0;j<length;j++)
dna[j]=DNA[0][pi++];
dna[j]='\0';
/*检查其他DNA[][]是否都存在字符串dna[]*/
bool flag=true;
for(int k=1;k<n;k++)
if(!strstr(DNA[k],dna)) //存在一个DNA不含有dna[]
{
flag=false;
break;
}
/*确认最大公共串*/
if(flag)
{
if(StrLen<length)
{
StrLen=length;
strcpy(obj,dna);
}
else if(StrLen==length)
{
if(strcmp(obj,dna)>0) //存在相同长度的公共串时,取最小字典序的串
strcpy(obj,dna);
}
}
}
if(StrLen<3)
cout<<"no significant commonalities"<<endl;
else
cout<<obj<<endl;
delete DNA;
}
return 0;
}
/*
Sample Input
11
2
GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
3
GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA
GATACTAGATACTAGATACTAGATACTAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA
GATACCAGATACCAGATACCAGATACCAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA
3
CATCATCATCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
ACATCATCATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACATCATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
2
GATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGAT
GATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATT
10
GATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGATGAT
GATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATTGATT
GATTTGATTTGATTTGATTTGATTTGATTTGATTTGATTTGATTTGATTTGATTTGATTT
GATTTTGATTTTGATTTTGATTTTGATTTTGATTTTGATTTTGATTTTGATTTTGATTTT
AGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGAT
AAGATAAGATAAGATAAGATAAGATAAGATAAGATAAGATAAGATAAGATAAGATAAGAT
AAAGATAAAGATAAAGATAAAGATAAAGATAAAGATAAAGATAAAGATAAAGATAAAGAT
CGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGAT
CCGATCCGATCCGATCCGATCCGATCCGATCCGATCCGATCCGATCCGATCCGATCCGAT
CCCGATCCCGATCCCGATCCCGATCCCGATCCCGATCCCGATCCCGATCCCGATCCCGAT
10
GATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATC
GCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTA
TAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC
CGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGAT
GTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGT
GAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGAGA
GCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCGC
ATATATATATATATATATATATATATATATATATATATATATATATATATATATATATAT
ACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAC
TCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTC
10
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
10
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG
GGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG
GGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGG
GGGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGG
GGGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGG
GGGGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGG
GGGGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGGG
GGGGGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGGG
4
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
10
AAAAAATAAAAAATAAAAAATAAAAAATAAAAAATAAAAAATAAAAAATAAAAAATAAAA
AAAAACAAAAACAAAAACAAAAACAAAAACAAAAACAAAAACAAAAACAAAAACAAAAAC
AAAAAGAAAAAGAAAAAGAAAAAGAAAAAGAAAAAGAAAAAGAAAAAGAAAAAGAAAAAG
AAAAATAAAAATAAAAATAAAAATAAAAATAAAAATAAAAATAAAAATAAAAATAAAAAT
AAAACAAAACAAAACAAAACAAAACAAAACAAAACAAAACAAAACAAAACAAAACAAAAC
AAAAGAAAAGAAAAGAAAAGAAAAGAAAAGAAAAGAAAAGAAAAGAAAAGAAAAGAAAAG
AAAATAAAATAAAATAAAATAAAATAAAATAAAATAAAATAAAATAAAATAAAATAAAAT
AAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAAC
AAATAAATAAATAAATAAATAAATAAATAAATAAATAAATAAATAAATAAATAAATAAAT
AAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAG
2
GATGATGCATCATGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGACTACTAA
GATGATCATCATACTACTCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Sample Output
no significant commonalities
AGATAC
CATCATCAT
TGAT
GAT
no significant commonalities
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
no significant commonalities
AAA
ACTACT
*/相关推荐
[统计模型] 基于R的潜在剖面分析(LPA)
本文主要介绍基于R进行潜在剖面分析(Latent Profile Aanalysis, LPA)。 关于潜在类别分析LCA/潜在剖面分析LPA的概念和区别,可以参考一下这篇文章: 潜在类别分析LCA \潜在剖面分析LPA介绍https://www.jianshu.com/p/4c830094131e?utm_campaign=maleskine 但是此文对潜类别分析的阐释还比较生涩,而且没有具体的代码编写、模型优选等内容。本文旨在丰富LPA的内容,并希望和大家交流、共同进步。 1. 什么是潜类别分.
ACM-Blue Jeans
package demo3; import java.util.Scanner; public class BlueJeans { int next[]=new int[100]; String[] input=new String[10]; public BlueJeans() { Scanner scanner=new Scanner(System.in); i
从Simulink仿真到DSP28335真机部署:PID闭环控制快速移植指南
本文详细介绍了如何将Simulink中的PID闭环控制算法快速移植到DSP28335嵌入式平台。通过模型与代码映射、浮点与定点数选择、定时器中断配置、物理输出实现以及调试技巧五个关键步骤,帮助工程师高效完成从仿真到真机部署的全过程,特别适合需要实现精确控制的嵌入式开发者。
poj3080
Blue Jeans Time Limit:1000MS Memory Limit:65536K Total Submissions:7671 Accepted:3184 Description The Genographic Project is a research partnership between IBM and ...
VS Code配合Prettier自动格式化代码
每次修改 .prettierrc.cjs 配置文件后,如果发现保存代码时格式化没有生效,可能是 VS Code 插件缓存未及时刷新。建议此时重启 VS Code,确保新的配置被正确加载并生效。
从7V到28V宽压输入,手把手教你设计一个5V/3A的DCDC电源模块(附MPS1584选型与原理图避坑)
本文详细解析了基于MPS1584芯片的7V至28V宽压输入到5V/3A输出的DCDC电源模块设计全流程。从电源架构选择、原理图设计要点到实际调试经验,涵盖了输入保护电路、功率转换核心电路及系统级优化测试,帮助工程师规避常见设计陷阱,实现高效稳定的电源解决方案。
POJ3080:Blue Jeans(后缀数组)
Description The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth w
VTK API 详解(103):vtkGPUVolumeRayCastMapper - GPU加速体绘制
是 VTK 中基于 GPU 的高效体绘制映射器,利用现代显卡的计算能力,通过射线投射算法实现快速且高质量的三维体积渲染。相比 CPU 版本的,GPU 映射器性能大幅提升,支持更复杂的光照和渲染效果,是体绘制的主流选择。是 VTK 中性能优异的GPU体绘制映射器;适合大数据集和实时交互应用;配合灵活设置颜色、透明度和光照;建议在支持OpenGL的环境中使用。
POJ308--Blue Jeans--后缀树
Description The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was
网格划分理论:CFD理论67 网格划分-三大理论问题_哔哩哔哩_bilibili传统解释非结构化网格是不对的——计算传热学大叔专题讨论2--CFD网格类型_哔哩哔哩_bilibili
传统解释非结构化网格是不对的——计算传热学大叔。fluent计算理论和离散方法原理视频推荐。
SAP-ABAP:SAP MM采购订单增强核心BAdI:IF_EX_ME_PROCESS_PO_CUST 深度解析与最佳实践指南
SAP MM采购订单增强核心BAdI:IF_EX_ME_PROCESS_PO_CUST 关键摘要 核心要点 技术定位:SAP MM模块采购订单处理的核心增强框架,属于第二代BAdI技术,支持多实例并行实现 架构特点: 覆盖采购订单全生命周期(创建/修改/显示) 嵌入ME21N/ME22N/ME23N的标准处理流程 提供字段级、抬头、行项目、账户分配等多层次增强点 关键方法: INITIALIZE:事务初始化时预加载数据 PROCESS_HEADER:处理抬头数据变更 PROCESS_ITEM:处理行项目字段
Blue Jeans(最大匹配问题)
Description The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was...
SPI为什么不需要加上拉电阻
大家好,我是记得诚。I2C因为其开漏的结构,无法输出高电平,所以外部加上拉电阻。我们在使用SPI的时候,发现是不需要加上拉电阻的。主要因为SPI多为推挽的结构,推挽电路,高低电平都可以输出,所以外部不需要加上拉电阻。推挽电路可以用2个三极管或者2个MOS管搭建而成。
POJ-3080-Blue jeans(KMP, 暴力)
链接: https://vjudge.net/problem/POJ-3080#author=alexandleo 题意: 给你一些字符串,让你找出最长的公共子串。 思路: 暴力枚举第一个串的子串,挨个匹配接下来的所有串. 找出最长子串中, 字典序最小的. 代码: #include <iostream> #include <cstdio> #include <...
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
Blue Jeans POJ - 3080(kmp&&暴力枚举)
POJ—3080 The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was pop...
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
POJ 3080 Blue Jeans 暴力枚举+KMP
题目地址: http://poj.org/problem?id=3080 这道题从昨天晚上开始做的,一直做到现在才过了,太坑了 看了别人才知道可以暴力枚举的,然后各种小错误, 哎……C语言的字符串函数学的不好啊…………………… AC代码: #include #include #include #include #include #include #includ
霍尼韦尔SoftMaster使用说明
霍尼韦尔SoftMaster使用说明
POJ 3080(Blue Jeans)
题意:给定 m 个长度为 60 的 DNA 字符串,求所有字符串的最长公共子串,若有多个则输出字典序最小的。公共子串长度小于三无效。 分析:可以用暴力枚举第一个字符串的所有子串然后用 strstr(),不过做这题是为了练 KMP,就用 KMP 解了。 代码: #include<cstdio> #include<cstring> #include<...
POJ-3080 Blue Jeans
题目链接:https://vjudge.net/problem/POJ-3080 给出最多10个字符串,每个串有60个字符,求这些串的最长公共子串,如果有多个,输出字典序最小的 用kmp+暴力,枚举第一个字符串的所有子串,然后用kmp和其他串匹配 #include #include #include #include #include using namespace std; const i
POJ3080 Blue Jeans
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16587 Accepted: 7370 Description The Genographic Project is a research partnership between IBM a
Blue Jeans--POJ 3080
1、题目类型:字符串、暴力法、KMP算法。 2、解题思路:寻找最长的公共子串,STL中string部分方法的应用。 3、注意事项:string.h中库函数的调用,KMP匹配。 4、实现方法:(暴力法) 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 string str[...
POJ 3080 Blue Jeans 字符串函数应用
传送门:POJ 3080 Blue Jeans分析: 利用strstr()函数,方便很多。代码如下:// 数据量不大,可以暴力枚举 // 坑:如果同时有等长的子序列,则输出字典序列最小的! #include <stdio.h> #include <string.h> int main() { int i,j,k,cas,n,z,h,cnt,flag,ii,total; char s
poj--3080Blue Jeans KMP的简单应用
穷举第一个字符串的所有子串,然后再判断其是否是其它字符串的子串。 然后注意输出字典序最小的答案。 判断枚举的子串是不是其它字符串子串时可以使用KMP,其实也可以直接暴力,因为题目数据范围不大。 学到一个技巧:可以使用memset(str,’\0’,sizeof(str)将字符数组清空。 还有一点需要注意的是在自己组合的字符串后面一定要记得加上字符串结束标志’\0’。代码如下:#include
POJ - 3080 Blue Jeans (暴力kmp)
The Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was populated.
Blue Jeans POJ - 3080
http://poj.org/problem?id=3080 KMP解法 暴力枚举第一个串的一个子串 看是不是其他所有串的子串 kmp优化一下 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int nxtt[100]; char ch[...
POJ3080Blue Jeans
http://poj.org/problem?id=3080 题意 : 给你几个DNA序列,让你找他们的共同的最长的子串,若是子串长度小于3,就输出no significant commonalities,否则就输出公共的那个子串,若是多个子串长度相同,就输出字典序最小的那一个子串。 思路 : 这个题的话就暴搜加枚举。。。。。。 1 #include<iostream>...
POJ训练计划3080_Blue Jeans(串处理/暴力)
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11542 Accepted: 4962 Description The Genographic Project is a research partnership between IBM a
1万+



被折叠的 条评论
为什么被折叠?



