Uva1368 DNA Consensus String

原创 2013年12月02日 00:22:34

题目链接:Uva1368-DNA Consensus String

题目大意: 输入m个长度为n的DNA序列,构造一个DNA序列,使得这个DNA序列与m个DNA序列的Hamming距离之和最小。若有多个解,输出字典序最小的解。


import java.util.*;
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] ACGT=new int[4];
		char[][] seq=null;
		char[] ans=null;
		int t,m,n;
		int sum;
		Scanner in=new Scanner(System.in);
		t=in.nextInt();
		while((t--)!=0){
			m=in.nextInt();
			n=in.nextInt();
			seq=new char[m][n];
			ans=new char[n];
			String temp=new String();
			for(int i=0;i<m;i++){
				temp=in.next();
				seq[i]=temp.toCharArray();
			}
			sum=0;
			for(int i=0;i<n;i++){   
				Arrays.fill(ACGT, 0);
				for(int j=0;j<m;j++)
				{
					if(seq[j][i]=='A')
						ACGT[0]++;
					if(seq[j][i]=='C')
						ACGT[1]++;
					if(seq[j][i]=='G')
						ACGT[2]++;
					if(seq[j][i]=='T')
						ACGT[3]++;
				}
				int max=ACGT[0];
				int index=0;
				for(int k=0;k<4;k++)
					if(ACGT[k]>max)
					{
						max=ACGT[k];
						index=k;
					}
				for(int k=0;k<4;k++)
					if(k!=index)
					{	
						sum=sum+ACGT[k];
					}
				if(index==0)
					ans[i]='A';
				if(index==1)
					ans[i]='C';
				if(index==2)
					ans[i]='G';
				if(index==3)
					ans[i]='T';
			}
			System.out.println(ans);
			System.out.println(sum);
		}
	}

}


相关文章推荐

UVa1368——DNA Consensus String

题目的意思是:给你m个等长的DNA序列,求解的Consensus String 的第 i 个是每 i 列出现最多的字符,有相同大小的,按字典序排。 而consensus error是每一列不同的字符...

UVA 1368 DNA Consensus String【ACM/ICPC Seoul 2006】

DNA Consensus String Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu   U...

[UVA1368]DNA Consensus String

这道题比较简单,看提交通过率就可以知道。 注意事项: 1.给的例子上,输入有多余的空格,所以选择了设定较大的数组并且在相应的位置设值为空字符,便于输出。 技巧: 运用了刚刚学到的常量数...

详细解答Uva - 1368 - DNA Consensus String

这道题目的题意其实很简单,只是让Uva用英语解释了一遍就似乎很复杂了。。 题目大意: 给定m行n列的DNA序列,只由AGCT四个字母组成。求出一个长度为n的序列使其与给定的每行DNA相似度最高。更...

算法竞赛入门经典 第三章 uVA1368 - DNA Consensus String

DNA (Deoxyribonucleic Acid) is the molecule which contains the genetic instructions. It consists of ...

UVA1368 UVALive3602 ZOJ3132 DNA Consensus String【贪心】

Regionals 2006 >> Asia - Seoul 问题链接:UVA1368 UVALive3602 ZOJ3132 DNA Consensus String。 问题简述:给定m...

Uva.1368 DNA Consensus String

题目连接:https://vjudge.net/problem/UVA-1368求与给出的序列匹配的汉明距离最小的序列思路:匹配序列的每一位取出现次数最的字母 #include #include #...

UVa 1368 DNA Consensus String(贪心+计数)

原题地址https://vjudge.net/problem/UVA-1368 题意:定义两个等长字符串的Hamming距离等于字符不同的位置个数。例如ACGT和GCGA的Hamming距离为2。...

DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368

DNA Consensus String Description                                                  Figure 1. DNA ...
  • Noob_f
  • Noob_f
  • 2015年01月09日 22:43
  • 584

uva - 1368 - DNA Consensus String(字符串)

题意:给你几个字符串,找到一个字符串,使其到所有字符串的总Hamming的距离尽量小,Hamming就是字符不同的位置个数。如有多解输出字典序最小的。和题目有关的就是序列只有 AGCT,,高中生物学过...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Uva1368 DNA Consensus String
举报原因:
原因补充:

(最多只允许输入30个字)