who is the best?
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 929 Accepted Submission(s): 539
Problem Description
There are N people want to choose the best person. Each person select the best person ai,
.John wants to know that who received the most number of votes.
Input
The first line contains a single integer T(1≤T≤50),indicating
the number of test cases.
Each test case begins with an integer N(1≤N≤100),indicating the number of person.
Next N lines contains an integer ai(1≤ai≤N).
Each test case begins with an integer N(1≤N≤100),indicating the number of person.
Next N lines contains an integer ai(1≤ai≤N).
Output
For each case, output an integer means who is the best person. If there are multiple answers, print the minimum index.
Sample Input
2 10 1 2 3 4 5 6 7 8 9 10 5 3 3 3 3 3
Sample Output
1 3
问谁被最多人喜欢,如果有重复的,输出序号最小的
思路: 用数组保存,找最大的,相同则比较编号即可
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
#define N 200
int a[N];
int main()
{
int T,n,t;
scanf("%d",&T);
while(T--)
{
memset(a,0,sizeof(a));
scanf("%d",&n);
int maxn=-1,v;
for(int i=0;i<n;i++)
{
scanf("%d",&t);
a[t]++;
}
for(int i=1;i<=n;i++)
{
if(maxn<a[i])
{
maxn=a[i];
v=i;
}
if(maxn==a[t]&&v>i)
v=i;
}
printf("%d\n",v);
}
return 0;
}
本文介绍了一个简单的编程问题,即通过投票来找出最受欢迎的人选。针对多个测试案例,每轮由N个人参与投票选出最佳者,任务是找出得票最多的候选人,若多人获得同样票数,则输出编号最小的候选人。
457

被折叠的 条评论
为什么被折叠?



