求助外站题目
  • 板块学术版
  • 楼主Kevinhbr
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/13 18:20
  • 上次更新2024/8/13 20:47:59
查看原帖
求助外站题目
1178354
Kevinhbr楼主2024/8/13 18:20

时间限制:1秒 内存限制:128M 题目描述 达达超级班正在选举班长,有n(n≤1000) 名候选人,每名候选人编号分别从 1 到 n,现在收集到了m(≤10000000)张选票,每张选票都写了一个候选人编号。现在想把这些堆积如山的选票按照投票数字从小到大排序,并且给出当选班长的候选人编号。

输入描述 输入 n 和 m 以及 m 个选票上的数字。

输出描述 输出当选人编号(若有多位候选人,则输出编号最小的)。

输入样例 5 10 2 5 2 2 5 2 2 2 1 2 输出样例 2 这个题目我直接用桶来做,结果时超6个样例对,两个WA,三个TLE 以下是我代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+100;
int n,m,a[N],tong[1100];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>a[i];
		tong[a[i]]++;
	}
	int ans=0,ansi=0;
	for(int i=1;i<=n;i++)
	{
		ans=max(ans,tong[i]);
	}
	for(int i=1;i<=n;i++)
	{
		if(ans==tong[i]) ansi=i;
	}
	cout<<ansi;
	return 0;
}

希望大神们给出个正解

2024/8/13 18:20
加载中...