题目:

B - Grandpa is Famous
The whole family was excited by the news. Everyone knew grandpa had been an extremely good bridge player for decades, but when it was announced he would be in the Guinness Book of World Records as the most successful bridge player ever, whow, that was astonishing!
The International Bridge Association (IBA) has maintained, for several years, a weekly ranking of the best players in the world. Considering that each appearance in a weekly ranking constitutes a point for the player, grandpa was nominated the best player ever because he got the highest number of points.
Having many friends who were also competing against him, grandpa is extremely curious to know which player(s) took the second place. Since the IBA rankings are now available in the internet he turned to you for help. He needs a program which, when given a list of weekly rankings, finds out which player(s) got the second place according to the number of points.

Input:

The input contains several test cases. Players are identified by integers from 1 to 10000. The first line of a test case contains two integers N and M indicating respectively the number of rankings available (2 <= N <= 500) and the number of players in each ranking (2 <= M <= 500). Each of the next N lines contains the description of one weekly ranking. Each description is composed by a sequence of M integers, separated by a blank space, identifying the players who figured in that weekly ranking. You can assume that:
in each test case there is exactly one best player and at least one second best player,
each weekly ranking consists of M distinct player identifiers.
The end of input is indicated by N = M = 0.

Output:

For each test case in the input your program must produce one line of output, containing the identification number of the player who is second best in number of appearances in the rankings. If there is a tie for second best, print the identification numbers of all second best players in increasing order. Each identification number produced must be followed by a blank space.

Input:

4 5
20 33 25 32 99
32 86 99 25 10
20 99 10 33 86
19 33 74 99 32
3 6
2 34 67 36 79 93
100 38 21 76 91 85
32 23 85 31 88 1
0 0

Output:

32 33
1 2 21 23 31 32 34 36 38 67 76 79 88 91 93 100

题目大意:

输入一个n行m列的数组,只有一个出现次数最多的值,可能有多个出现次数第二多的值,找到数组中出现次数第二多的数并输出。输入n=0、m=0时结束。

实现代码及思想:

定义一个结构体数组,结构体里分别num和score两个变量,num代表选手的编号,score代表出现次数。然后对结构体数组p进行排序,因为只有一个出现次数最多的值,所以p[0].score是出现次数最多的值的次数,p[1].score是出现次数第二多的值的次数,找到第二多的次数,然后输出编号(num),再继续向后查找,如果次数等于p[1].score就输出编号(num).

#include <iostream>
#include<algorithm>using namespace std;
const int MAXL = 10001;
int N,M;
struct player
{int num;int score;
}p[MAXL];bool cmp(player p1,player p2)
{if(p1.score!=p2.score)return p1.score>p2.score;//如果分数不同,分数高的在前elsereturn p1.num<p2.num;//如果分数相同,按照编号小的在前
}int main()
{  while(cin >> N >> M){if(N==0&&M==0)break;for(int i=0;i<MAXL;i++){p[i].score = 0;}int s;for(int i=0;i<N;i++){for(int j=0;j<M;j++){cin >> s;p[s].num =s;p[s].score++;  }}sort(p,p+MAXL,cmp);cout << p[1].num;for(int i=2;i<MAXL;i++){if(p[i].score==p[1].score){cout << " " << p[i].num;  }   }cout << endl;}return 0;
}

Vjudge B - Grandpa is Famous相关推荐

  1. POJ 2092 Grandpa is Famous G++

    #include <iostream> #include <cstdio> #include <cstring> using namespace std; int ...

  2. hdu 1347 Grandpa is Famous

    题意:找出输入数字中出现次数第二多的数 直接暴力(如果暴力不是为了杀戮,那就毫无意义了) 储存,查找 #include<iostream> #include<cstring> ...

  3. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  4. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  5. HOJ题目分类//放这儿没事刷刷学算法!嘻嘻!

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  6. POJ 超详细分类

    POJ 各题算法 1000    A+B Problem            送分题     49%    2005-5-7 1001    Exponentiation         高精度   ...

  7. A Famous Music Composer

    描述 Mr. B is a famous music composer. One of his most famous work was his set of preludes. These 24 p ...

  8. 波卡链Substrate (7)Grandpa + Babe

    1. BABE 必须建立在 GRANDPA 最终确定的链上. BABE 中最好的链就是由主节点创建的区块最多的链 Grandpa 多个块一次性进行确认 eg. 标有"1"的块是主要 ...

  9. 波卡链Substrate (7)Grandpa协议一“概念说明”

    1. Grandpa协议 祖先递归继承共同前缀协议(GHOST-based Recursive Ancestor Deriving Prefix Agreement) 区块选择协议:配合出块协议 对链 ...

最新文章

  1. 基于libzplay 实现window下音乐频谱动态显示
  2. Android_(消息提示)多种使用Toast的消息提示
  3. BGP community
  4. html+js获取系统当前日期并输出
  5. android恶意代码检测报告,用机器学习检测Android恶意代码
  6. 抛开vue-cli 利用requireJS搭建一个vue项目
  7. 重新加一个window_Activity、View、Window关系,进程间通信,责任链模式,Https,数据存储...
  8. 【OS学习笔记】二十二 保护模式六:保户模式下操作系统内核如何加载用户程序并运行 对应的汇编代码之用户程序
  9. 支付宝客户端架构分析:自动化日志收集及分析
  10. C陷阱与缺陷代码分析之第2章语法陷阱
  11. jquery $加一个点后面加个名称的意思
  12. html在不同浏览器器下颜色不同,CSS在不同浏览器下实现颜色渐变效果
  13. Mozilla的 MDN 学习区Web开发
  14. Python 进阶——从 list 到 NumPy 的多维数组
  15. react-router 低版本的路由API
  16. data image转换图片php,PHP 将dataurl转成图片image方法总结
  17. 关于PHP中echo换行问题
  18. keypress事件中键盘上每个键的KeyAscii值(易语言/VB)
  19. 概率论基础知识整理(一)
  20. 帝国cms 图集模型 php,帝国CMS教程图集字段的大图,小图,说明的调用

热门文章

  1. 下午经历的一次exchange数据库无法挂载
  2. 串口通信--CSerialport类
  3. RBG像素值读取方法
  4. 4个新的HTTP状态码含义:428、429、431、511
  5. 【特斯拉产业链全景图】发布
  6. java和c++复试面试题
  7. C#调用OFFICE转换WORD,EXCEL,PPT文件为PDF
  8. pmsm仿真 matlab 转子转角波形,MATLAB/SIMULINK的永磁同步电机矢量控制系统仿真研究...
  9. 滤波器中截止频率的理解1
  10. 通过HWND取得pid以及HANDLE