poj 3080 Blue Jeans
2015-06-20 15:37
267 查看
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 populated.
As an IBM researcher, you have been tasked with writing a program that will find commonalities amongst given snippets of DNA that can be correlated with individual survey information to identify new genetic markers.
A DNA base sequence is noted by listing the nitrogen bases in the order in which they are found in the molecule. There are four bases: adenine (A), thymine (T), guanine (G), and cytosine (C). A 6-base DNA sequence could be represented as TAGACC.
Given a set of DNA base sequences, determine the longest series of bases that occurs in all of the sequences.
Input
Input to this problem will begin with a line containing a single integer n indicating the number of datasets. Each dataset consists of the following components:
A single positive integer m (2 <= m <= 10) indicating the number of base sequences in this dataset.
m lines each containing a single base sequence consisting of 60 bases.
Output
For each dataset in the input, output the longest base subsequence common to all of the given base sequences. If the longest common subsequence is less than three bases in length, display the string "no significant commonalities" instead. If multiple subsequences
of the same longest length exist, output only the subsequence that comes first in alphabetical order.
Sample Input
Sample Output
Source
South Central USA 2006
求最大连续公共子序列
暴力
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 13725 | Accepted: 6100 |
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.
As an IBM researcher, you have been tasked with writing a program that will find commonalities amongst given snippets of DNA that can be correlated with individual survey information to identify new genetic markers.
A DNA base sequence is noted by listing the nitrogen bases in the order in which they are found in the molecule. There are four bases: adenine (A), thymine (T), guanine (G), and cytosine (C). A 6-base DNA sequence could be represented as TAGACC.
Given a set of DNA base sequences, determine the longest series of bases that occurs in all of the sequences.
Input
Input to this problem will begin with a line containing a single integer n indicating the number of datasets. Each dataset consists of the following components:
A single positive integer m (2 <= m <= 10) indicating the number of base sequences in this dataset.
m lines each containing a single base sequence consisting of 60 bases.
Output
For each dataset in the input, output the longest base subsequence common to all of the given base sequences. If the longest common subsequence is less than three bases in length, display the string "no significant commonalities" instead. If multiple subsequences
of the same longest length exist, output only the subsequence that comes first in alphabetical order.
Sample Input
3 2 GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 3 GATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATACCAGATA GATACTAGATACTAGATACTAGATACTAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA GATACCAGATACCAGATACCAGATACCAAAGGAAAGGGAAAAGGGGAAAAAGGGGGAAAA 3 CATCATCATCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC ACATCATCATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AACATCATCATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
Sample Output
no significant commonalities AGATAC CATCATCAT
Source
South Central USA 2006
求最大连续公共子序列
暴力
#include <iostream> #include <stdio.h> #include <algorithm> #include <map> #include <set> #include <queue> #include <stack> #include <string.h> #include <vector> #include <stdlib.h> #include <math.h> using namespace std; int n; #define len 60 int main() { int test; cin>>test; for(int i=1;i<=test;i++) { cin>>n; char ** DNA = new char * ; for(int p=0;p<n;p++) { DNA[p]=new char[61]; cin>>DNA[p]; } char obj[233]; int strlen = 0; int length = 1; for(int i=0;;i++) { char dna[233]; int pi=i; if(pi+length>len) { length++; i=-1; if(length>len) break; continue; } for(int j=0;j<length;j++) { dna[j]=DNA[0][pi++]; } dna[length]='\0'; bool flag =true; for(int k=1;k<n;k++) { if(!strstr(DNA[k],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; } return 0; }
相关文章推荐
- VS2013 Qt Unable to find a Qt Build 及 LINK1112错误
- ui技巧
- Solution : Can't quit Packagekit - adding software package in OpenSuse
- Android模拟器Unexpected value from nativeGetEnabledTags: 0 问题解决方法
- C#面向对象设计模式纵横谈4 Builder生成器模式创建型模式
- hdu 5261 蜀道难(deque 双端队列)
- 使用crontab执行GUI程序
- poj 3061 Subsequence
- EasyUI之tab标签显示页面内容
- Java并发编程-29-非阻塞式线程安全列表-ConcurrentLinkedDeque
- leetcode:N-queens
- iOS(UIButton使用问题)
- 黑马程序员——JAVA练习——String、StringBuffer和StringBuilder
- size_t/ptrdiff_t/intptr_t/uintptr_t
- POJ 2524 Ubiquitous Religions
- 黑马程序员——JAVA笔记——StringBuffer和StringBuilder
- leetcode 225 Implement Stack using Queues
- WindowBuilder离线安装
- UILabel 设置行间距 && 自动计算text 的frame
- arduino 循迹小车