首页 > 代码库 > uva 1368 - DNA Consensus String
uva 1368 - DNA Consensus String
题目上给的样例input格式存在一定问题,行末多空格。
在这上面纠结了几次……
#include<stdio.h> #include<string.h> #include<iostream> const int maxn = 1100; int A[maxn]; int C[maxn]; int G[maxn]; int T[maxn]; char ans[maxn]; int ans_; int m,n; void judge(int pos) { ans[pos]='A'; int max_=A[pos]; if(max_<C[pos]) { ans[pos]='C'; max_=C[pos]; } if(max_<G[pos]) { // printf("****\n"); ans[pos]='G'; max_=G[pos]; } if(max_<T[pos]) { ans[pos]='T'; max_=T[pos]; } // printf("ans[%d] = %c\n",pos,ans[pos]); if(ans[pos]=='A') { ans_+=m-A[pos]; } if(ans[pos]=='C') { ans_+=m-C[pos]; } if(ans[pos]=='G') { ans_+=m-G[pos]; } if(ans[pos]=='T') { ans_+=m-T[pos]; } } int main() { int t; scanf("%d",&t); while(t--) { memset(A,0,sizeof(A)); memset(C,0,sizeof(C)); memset(G,0,sizeof(G)); memset(T,0,sizeof(T)); char ch; scanf("%d%d",&m,&n); getchar(); for(int i=0;i<m;i++) { for(int j=0;j<n;j++) { scanf("%c",&ch); if(ch=='A') { A[j]++; } if(ch=='C') { C[j]++; } if(ch=='G') { G[j]++; } if(ch=='T') { T[j]++; } } getchar(); } //输出查错 // for(int i=0;i<m;i++) // { // for(int j=0;j<n;j++) // { // printf("%c",s[i][j]); // } // printf("\n"); // } // for(int i=0;i<n;i++) // printf(" %d",A[i]); // printf("\n"); //------------------------------------ memset(ans,0,sizeof(ans)); ans_=0; for(int i=0;i<n;i++) { judge(i); } ans[n]=0; puts(ans); printf("%d\n",ans_); } return 0; }
uva 1368 - DNA Consensus String
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。