hihoCoder #1427 : What a Simple Research(大㵘研究)

时间限制:1000ms
单点时限:1000ms
内存限制:256MB

Description - 题目描述

  Peking University Student Folk Music Band has a history of more than 90 years. They play Chinese traditional music by Chinese traditional instruments, such as Pipa, Erhu and Guzheng, etc. Doctor Li is a member of that band, and also a former ACMer. Now he is doing some research on Chinese ancient music. Many Chinese ancient music has only five kinds of tones, which can be denoted by 'C','D','E','G', and 'A'. Given a piece of music score, Li wants to do some simple statistics.

北京大学音乐团有着超过90年的历史。他们使用诸如琵琶、二胡与古筝等中国传统乐器演奏传统音乐。Doctor Li是乐团的一位成员,同时也是前ACMer。现在他正在研究中国古乐。许多中国古乐由五声组成,此处用 'C', 'D', 'E', 'G', 与 'A' 表示。这有一段乐谱,Li想用来做些简单的统计。

CN

Input - 输入

  There are no more than 20 test cases.

  In each test case:

  The first line contains two integers n and m (2<= n,m <= 20), indicating that a piece of music score is represented by an n×m matrix of tones. Only 'C','D','E','G' and 'A' can appear in the matrix.

  Then the n×m matrix follows.

  The input ends with a line of "0 0".

测试用例不超过20组。
对于每组测试用例:
第一行为两个整数n与m (<= n,m <= ),表示一段乐谱中n×m大小的音阶矩阵。矩阵中只有 'C', 'D', 'E', 'G', 与 'A'。
随后是n×m大小的矩阵。
输出以一行"0 0"为结束标志。

CN

Output - 输出

  For each test case:

  For each kind of tone shown in the matrix, calculate the appearing times of it, and print the result in descending order according to the appearing times. If more than one kind of tones has the same appearing times, print them in the lexicographical order.

对于每组测试用例:
对于矩阵中的每种音阶,统计其出现次数,并照其出现次数降序输出。如果出现多种次数相同的音阶,则以字典序输出。

CN

Sample Input - 样例输入

4 5
AGCDE
AGDDE
DDDDD
EEEEE
2 4
GADC
CDEE
0 0

Sample Output - 样例输出

D 8 E 7 A 2 G 2 C 1
C 2 D 2 E 2 A 1 G 1

题解

  水题,唯一的坑点估计就是不需要输出次数为0的音阶。

代码 C++

 #include <cstdio>
#include <cstring>
#include <algorithm>
struct Tone{
char ton;
int cnt;
bool operator<(const Tone &b)const{
if (cnt != b.cnt) return cnt > b.cnt;
return ton < b.ton;
}
};
int main(){
int n, m, i, j;
char data[];
while (scanf("%d%d ", &n, &m), n + m){
Tone opt[] = { 'A', , 'C', , 'D', , 'E', , 'G', , , };
for (i = ; i < n; ++i){
gets(data);
for (j = ; j < m; ++j){
switch (data[j]){
case 'A': ++opt[].cnt; break;
case 'C': ++opt[].cnt; break;
case 'D': ++opt[].cnt; break;
case 'E': ++opt[].cnt; break;
default: ++opt[].cnt;
}
}
}
std::sort(opt, opt + );
for (i = ; opt[i].cnt; ++i){
printf("%c %d%c", opt[i].ton, opt[i].cnt, " \n"[opt[i + ].cnt == ]);
}
}
return ;
}

hihoCoder 1427 : What a Simple Research(大㵘研究)的更多相关文章

  1. A simple test

        博士生课程报告       视觉信息检索技术                 博 士 生:施 智 平 指导老师:史忠植 研究员       中国科学院计算技术研究所   2005年1月   目 ...

  2. JSON库的使用研究(二)

    Java 中哪个 JSON 库的解析速度是最快的? 这个问题有意义吗?各个JSON库的性能差距不大?呵呵,差距大不大,自己往下看吧! 这个问题我们应该分为以下四个维度进行研究: 1.序列化 2.反序列 ...

  3. SLAM领域牛人、牛实验室、牛研究成果梳理

    点击公众号"计算机视觉life"关注,置顶星标更快接收消息! 本文阅读时间约5分钟 对于小白来说,初入一个领域时最应该了解的当然是这个领域的研究现状啦.只有知道这个领域大家现在正在 ...

  4. 看完它,你就全懂了十大Wifi芯片原厂!

    看完它,你就全懂了十大Wifi芯片原厂!   来源:全球物联网观察 概要:不知不觉中,WiFi几乎已攻占了整个世界.现在只要你上网,可能就离不开WiFi了. 2014年是物联网WiFi市场关键的转折期 ...

  5. Java 下的 JSON库性能比较:JSON.simple

    JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上它 ...

  6. JSON库之性能比较:JSON.simple VS GSON VS Jackson VS JSONP

    从http://www.open-open.com/lib/view/open1434377191317.html 转载 Java中哪个JSON库的解析速度是最快的? JSON已经成为当前服务器与WE ...

  7. 对html中iframe的研究

    虽然平时不怎么用iframe,但经常在网上听一些前辈说iframe怎样怎样,今天索性对iframe来个大研究,那样就不必去记那些条条框框了,自己体验一遍比看什么都好. 创建两个文件一个index.ht ...

  8. 开源 JSON 库解析性能对比( Jackson / Json.simple / Gson )

    Json 已成为当前服务器与 web 应用之间数据传输的公认标准. 微服务及分布式架构经常会使用 Json 来传输此类文件,因为这已经是 webAPI 的事实标准. 不过正如许多我们习以为常的事情一样 ...

  9. Json学习总结(2)——Java 下的 JSON库性能比较:JSON.simple vs. GSON vs. Jackson vs. JSONP

    JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上它 ...

随机推荐

  1. 纪勇破解QQ号问题

    试题描述 来到了新学校,才相处不到一个月,jy就对oyjy一见钟情.于是向oyjy问QQ号.当然身为创(实)新(验)一班的同学,oyjy还是要考考jy.她给了纪勇一个加密后的QQ号,让纪勇解密,解密规 ...

  2. Java被忽略的基本知识(二)

    14.字符串的内容不可改变,不能修改某个下标的字符值.字符串之间的"+"连接是通过"断开--再连接",修改变量的栈中的引用地址指向. 15.对于数组.类(类的属 ...

  3. 裁剪Tessdata

    一个项目只需要tesseract traineddata 中的数字部分. 实现过程简单说就是解包,去掉多余,再打包.利用了tesseract的dawg2wordlist  /  wordlist2da ...

  4. bootstraptable插件文档的坑

    1.事件onCheck中文档参数为row, $element正确的顺序为$element,row eg: $Table.on('check.bs.table', function ($element, ...

  5. 学习了quartz.net2.0的心得

    由于项目中要运用到此调度方法,所以抽空学习了下,简单的用法可以掌握了 首先作为没有用过的人来说,怎么用呢? 于是百度了下原来先要下载 quartz.net2.0, 然后我就去下了个quartz.net ...

  6. 数据库助手类 DBHelper

    using System; using System.Collections.Generic; using System.Text; using System.Configuration; using ...

  7. APICloud开发App总结(一)

    apiCloud app 开发是最近一两年刚刚兴起的一种混合开发方式.常用的模块以原生方式开发好,然后用js进行粘合.组织,完成整个的app的逻辑.这种开发方式极大的提高了软件模块的复用率,加快了ap ...

  8. Linq解析带命名空间、前缀、Soap格式的XML

    关于XML,经常会用到,XML有一般的,同样也有二般的,更不要觉得会操作基础的XML就觉得自己已经精通XML操作,文中是对解析XML的方法进行介绍 1. 一般XML <?xml version= ...

  9. 一次APP测试的感悟

    项目经理担责任.产品担责任.测试只需要把测试中发现的问题展示出来.如实反应问题.谁担责任谁有权利决定上不上线.所以他们直接绕过了测试.APP的上线让我学到了很多东西,见识了很多东西,也感悟了很多.这是 ...

  10. 006_Salesforce Sharing 使用说明

    Salesforce Sharing 使用说明 背景说明:Salesforce共享实施记录和其它数据时,需要员工之间共享或多个用户在一个组织间的共享.然而,共享这些数据是有风险的,尤其是当它涉及到敏感 ...