uva1368 字符串构造
来源:互联网 发布:number是什么软件 编辑:程序博客网 时间:2024/05/22 03:32
/***************** * Author:fisty * Data:2014-12-13 * uva 1368 * 竖着看选择出现次数最多的字母, * 如果频率相同选择字典序小的字母 * **************/#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <string>#include <iostream>using namespace std;#define MAX_N 1010int m, n;string G[MAX_N];char ss[MAX_N]; //重新构造的字符串int sum[MAX_N]; //每一列的字母的最大hammingvoid solve(int t){ //计算每一列的最高频字母保存在ss中,并且将这一列与ss中字母不同的保存到sum中 int num[MAX_N]; memset(num, 0, sizeof(num)); for(int i = 0;i < m; i++){ num[G[i][t]-'A']++; } int maxx = 0; char q = 'A'; for(int i = 0;i <= 25; i++){ if(maxx < num[i]){ maxx = num[i]; q = i+'A'; } } ss[t] = q; for(int i = 0;i < m; i++){ if(ss[t] != G[i][t]){ sum[t]++; } }}int main(){ int t; scanf("%d", &t); while(t--){ scanf("%d%d", &m, &n); for(int i = 0;i < m; i++){ string s; cin >> s; G[i] = s; } memset(ss, 0, sizeof(ss)); memset(sum ,0, sizeof(sum)); for(int i = 0;i < n; i++){ solve(i); //求第i列字典序最小字母 } cout << ss << endl; int ans = 0; for(int i = 0; i < n; i++) ans += sum[i]; printf("%d\n",ans); } return 0;}
0 0
- uva1368 字符串构造
- UVA1368
- uva1368
- Uva1368
- UVa1368
- UVA1368
- UVa1368
- UVa1368
- uva1368(贪心)
- uva1368 - DNA Consensus String
- Uva1368 DNA Consensus String
- Uva1368 - DNA Consensus String
- UVA1368- DNA Consensus String
- UVA1368 - DNA Consensus String
- uva1368 - DNA Consensus String
- DNA序列 uva1368
- uva1368 - DNA Consensus String
- [UVA1368]DNA Consensus String
- bzoj1588 [HNOI2002]营业额统计 (Splay)
- 常见错误及解决方法
- NSInvoaction的用法
- ExQuilla 23 and Thunderbird 17: Ubuntu 下免费使用Microsoft Exchange Server
- java中文参数乱码问题
- uva1368 字符串构造
- 神经网络入门
- 二叉树的有关操作
- Codeforces 494 A. Treasure && Codeforces Round #282 (Div. 1)
- java反射学习
- linux-usb驱动开发一
- 实现strcpy和strlen函数
- 架构师害怕程序员知道的十项技能
- Oracle在所有内容前追加一些内容的方法