1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <cstdio>
  4.  
  5. int main()
  6. {
  7. int T;
  8. int m, n;
  9. char dna[][]; // 4 <= m <= 50, 4 <= n <= 1000
  10.  
  11. scanf("%d", &T);
  12. while (T--) {
  13. scanf("%d%d", &m, &n);
  14. for (int i = ; i < m; i++) {
  15. scanf("%s", dna[i]);
  16. }
  17. /*
  18. for (int i = 0; i < m; i++) {
  19. printf("%s\n", dna[i]);
  20. }
  21. */
  22. char ans[]; // 4 <= n <= 1000
  23. int cnt[]; // count for 'A', 'C', 'G', 'T' in a column
  24. int max;
  25. char maxChar;
  26.  
  27. // scan each column, select the character which occurs the most time,
  28. // if there is a tie, select the lexicographically smaller one
  29. for (int j = ; j < n; j++){
  30.  
  31. cnt[] = cnt[] = cnt[] = cnt[] = max = ;
  32.  
  33. for (int i = ; i < m; i++){
  34. switch (dna[i][j]){
  35. case 'A': {
  36. cnt[]++;
  37. if (cnt[] > max || (cnt[] == max && maxChar > 'A')){
  38. max = cnt[];
  39. maxChar = 'A';
  40. }
  41. break;
  42. }
  43. case 'C': {
  44. cnt[]++;
  45. if (cnt[] > max || (cnt[] == max && maxChar > 'C')){
  46. max = cnt[];
  47. maxChar = 'C';
  48. }
  49. break;
  50. }
  51. case 'G': {
  52. cnt[]++;
  53. if (cnt[] > max || (cnt[] == max && maxChar > 'G')){
  54. max = cnt[];
  55. maxChar = 'G';
  56. }
  57. break;
  58. }
  59. case 'T': {
  60. cnt[]++;
  61. if (cnt[] > max){
  62. max = cnt[];
  63. maxChar = 'T';
  64. }
  65. break;
  66. }
  67. }
  68.  
  69. }
  70.  
  71. ans[j] = maxChar;
  72. }
  73. ans[n] = '\0';
  74. printf("%s\n", ans);
  75.  
  76. // count the total Hamming distance
  77. int h_dis = ;
  78. for (int i = ; i < m; i++){
  79. for (int j = ; j < n; j++){
  80. if (dna[i][j] != ans[j])
  81. h_dis++;
  82. }
  83. }
  84. printf("%d\n", h_dis);
  85. }
  86.  
  87. return ;
  88. }

LRJ 3-7的更多相关文章

  1. lrj计算几何模板

    整理了一下大白书上的计算几何模板. #include <cstdio> #include <algorithm> #include <cmath> #include ...

  2. 倒水问题(Fill,UVA 10603) lrj白书 p202

    看着lrj的代码自己敲了一遍,还没调试成功.... 有时间再进行完善 /* 状态start到各个状态u1,u2,u3..... 的倒水量分别为u1.dist,u2.dist,u3.dist.... * ...

  3. LRJ入门经典-0907万圣节的小L306

    原题 LRJ入门经典-0907万圣节的小L306 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 今天是万圣节,小L同学开始了 ...

  4. LRJ入门经典-0906最短公共父串305

    原题 LRJ入门经典-0906最短公共父串305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 给定字符串A和字符串B,要求 ...

  5. LRJ入门经典-0905邮票和信封305

    原题 LRJ入门经典-0905邮票和信封305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 假定一张信封最多贴5张邮票,如 ...

  6. LRJ入门经典-0903切蛋糕305

    原题 LRJ入门经典-0903切蛋糕305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 如图所示有一个矩形蛋糕,上面划分成 ...

  7. // 62.是否有利润奖--lrj private boolean isProfitsAward; // 63.利润奖--lrj_price private String profitsAward;

    // 62.是否有利润奖--lrj private boolean isProfitsAward; // 63.利润奖--lrj_price private String profitsAward; ...

  8. 第五章第二例题关于Vector(LRJ)

    vector(动态数组)(粘) 一.概述 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector是一个容器,它能够存放各种类型的对象,简 ...

  9. 第四章第四个例题(LRJ)

    半年了,最起码的编程能力也谈不上啊,思维神马就更不不敢说了. 互联网时代讲求效率,走得慢和不走没有区别了. The war is on. (buhuidetiduokanduodajibianyehu ...

  10. 强连通分量(LRJ训练指南)

    #include <iostream> #include <queue> #include <string> #include <cstdio> #in ...

随机推荐

  1. Yii 学习笔记

    Yii常用执行SQL方法 ====================================================== ================================ ...

  2. 几道面试题-考察JS的运用

    1.定义一个方法,传入一个string类型的参数,然后将string的每个字符间加个空格返回,比如: spacify('hello world') // => 'h e l l o  w o r ...

  3. oracle-Oradim

    输入以下命令之一: 通过指定以下选项创建实例: -NEW -SID sid | -SRVC srvc | -ASMSID sid | -ASMSRVC srvc [-SYSPWD pass] [-ST ...

  4. JS文字球状放大效果

    在线演示 本地下载

  5. MYSQL中LIMIT用法_后台分页

    LIMIT是MySQL内置函数,其作用是用于限制查询结果的条数. 1)其语法格式如下: LIMIT[位置偏移量,]行数 其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开 ...

  6. MongoDB负载信息一目了然 阿里云HDM重磅发布MongoDB监控和诊断功能

    混合云数据库管理(HDM)的统一监控.告警.诊断功能新增了对MongoDB的支持. 通过直观的方式将MongoDB多个维度的负载信息统一整合,不仅可以清晰的查看实时负载信息,也可以方便的确认历史负载情 ...

  7. 2017校赛 问题 D: 我知道了,你知道了吗?【递归】

    题目描述 Alice和Bob走在去学校的路上,听到两个路人的对话: 路人甲:我知道了, 你知道了吗? 路人乙:我知道你知道了,你知道了吗? 路人甲:我知道你知道我知道了,你知道了吗? 路人乙:我知道你 ...

  8. 2018-12-24-win10-uwp-求两个矩形相连的几何

    title author date CreateTime categories win10 uwp 求两个矩形相连的几何 lindexi 2018-12-24 20:51:49 +0800 2018- ...

  9. python 异常层级

  10. Libevent:9Evbuffers缓存IO的实用功能

    Libevent的evbuffer功能实现了一个字节队列,优化了在队列尾端增加数据,以及从队列前端删除数据的操作. Evbuffer用来实现缓存网络IO中的缓存部分.它们不能用来在条件发生时调度IO或 ...