zoukankan      html  css  js  c++  java
  • UVa 1368 DNA Consensus String

    题意:给出n个长度为len的DNA序列,求一个DNA序列,使得该序列到这m个DNA序列的距离尽量短,两个等长字符串的字符不同的位置个数即为两个字符串之间的距离

    记录下每个位置出现次数最多的字母,再扫一遍这n个串,求出距离

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include <cmath>   
     5 #include<algorithm>  
     6 using namespace std;
     7 
     8 typedef long long LL;
     9 char s[55][1005],t[1005];
    10 int cnt[1005][105],num[1005];
    11 
    12 int main()
    13 {
    14     int ncase,i,j,k,ans,n,len;
    15     scanf("%d",&ncase);
    16     while(ncase--)
    17     {
    18         memset(cnt,0,sizeof(cnt));
    19         memset(num,0,sizeof(num));
    20         scanf("%d %d",&n,&len);
    21         for(i=0;i<n;i++) cin>>s[i];
    22         
    23         for(i=0;i<n;i++)
    24         {
    25             for(j=0;j<len;j++)
    26             cnt[j][s[i][j]-'A']++;
    27         }
    28         
    29         for(j=0;j<len;j++){
    30             int max=-1;
    31             for(k=0;k<100;k++){
    32                 if(cnt[j][k]>max){
    33                     max=cnt[j][k];
    34                     t[j]=k+'A';    
    35                     num[j]=max;                
    36                 }
    37                 
    38             }
    39         }
    40         
    41         int ans=0;
    42         for(i=0;i<n;i++){
    43             for(j=0;j<len;j++){
    44                 if(s[i][j]!=t[j]) ans++;;
    45             }
    46         }
    47         
    48         for(j=0;j<len;j++) printf("%c",t[j]);
    49         printf("
    ");
    50         printf("%d
    ",ans);
    51     }
    52 }
    View Code
  • 相关阅读:
    关于hibernate的缓存使用(转)
    Webservice 实践
    三大电商注册登录表单分析
    网上好文搜集
    git简介
    Python程序中的进程操作--—--开启多进程
    进程的创建和结束
    同步异步阻塞和非阻塞
    进程的并行和并发
    进程调度
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4311093.html
Copyright © 2011-2022 走看看