码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 1368

时间:2015-01-10 19:46:01      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:acm   c++   uva   

背景:每列找出最多重复次数即可。
#include<stdio.h>
#include<string.h>
int main(void){
    int t;
	scanf("%d",&t);
	while(t--){
		int n,m;
		scanf("%d %d",&n,&m);
		char DNA[n][m+1];
		for(int i=0;i<n;i++) scanf("%s",DNA[i]);
		int list[4];
		int num=0,num1;
		for(int i=0;i<m;i++){
			memset(list,0,sizeof(list));
			for(int j=0;j<n;j++){
				if(DNA[j][i]=='A') list[0]++;
				else if(DNA[j][i]=='C') list[1]++;
				else if(DNA[j][i]=='G') list[2]++;
				else list[3]++;
			}
			int temp=0,ans;
			for(int k=0;k<4;k++){
				if(list[k]>temp) {
				ans=k;
				temp=list[k];
				num1=n-list[k];
			    }
			}
			if(ans==0) printf("A");
			else if(ans==1) printf("C");
			else if(ans==2) printf("G");
			else printf("T");
			num+=num1;
		}
		printf("\n%d\n",num);
	}    
    return 0;
}

UVa 1368

标签:acm   c++   uva   

原文地址:http://blog.csdn.net/jibancanyang/article/details/42585809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!