题目链接:Click here
题意:一个国家要投票选举,选举方式是每个城市先选举出自己城市的代表,然后再统计哪个代表所代表的城市多,如果有票数相同的情况,则选择标号较小的那个。
思路:我们将每个城市选出来的代表存到一个数组中,在判断数组中出现最多的那个标号。
代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <queue>
#include <cstdlib>
using namespace std;
int dp[500003], city[500003];
int main()
{
int m, n, maxx, s;
int a[200], ans[200], anss;
while(scanf("%d%d", &m, &n) != EOF)
{
memset(ans, 0, sizeof(ans));
for(int i = 1; i <= n; i++)
{
maxx = -1;
for(int j = 1; j <= m; j++)
{
scanf("%d", &s);
if(s > maxx)
{
maxx = s;
a[i] = j;
}
}
}
for(int i = 1; i <= n; i++)
ans[a[i]]++;
maxx = 0;
for(int i = 1; i <= m; i++)
{
if(maxx < ans[i])
{
maxx = ans[i];
anss = i;
}
}
printf("%d\n", anss);
}
return 0;
}