Codeforces Round #316 (Div. 2)-A. Elections-模拟水题22

本文探讨了排序算法在选举过程中的应用,通过具体步骤解释如何利用排序算法筛选出最佳候选人,并介绍了相应的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


选举步骤1  m个城市,每个城市中最高票的选手晋级,得一分(票数相同选下标最小的)


步骤1结束后,得到m个晋级分,再排序,取最高分的为winner(票数相同选下标最小的)




#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <set>
#include <vector>
using namespace std;
const __int64 maxn = 100005;
struct node
{
	__int64 x,num;
};
node  vis[105];
__int64 cmp(node a,node b)
{
	if (a.x!=b.x)
		return a.x>b.x;
	else
		return a.num<b.num;
}
__int64 ans[105];
int main()
{
	
	__int64 maxx;
	__int64 i,j,n,m;
scanf("%I64d%I64d",&n,&m);
	__int64 ok=0;
	for (i=1;i<=m;i++)
	{
		
		memset(vis,0,sizeof(vis));
		
		for (j=1;j<=n;j++)
		{
			scanf("%I64d",&vis[j].x);
			vis[j].num=j;
		}
		sort(vis+1,vis+1+n,cmp);
		
		  maxx=vis[1].num;  
		ans[++ok]=maxx;
	}
	
	__int64 tm[105];
	memset(tm,0,sizeof(tm));
	for (i=1;i<=ok;i++)
	{
		tm[ans[i]]++;
	} 
	memset(vis,0,sizeof(vis));
	for(i=1;i<=n;i++)
	{
		vis[i].num=i;
		vis[i].x=tm[i];
		
	}
	sort(vis+1,vis+n+1,cmp);
	printf("%I64d\n",vis[1].num);
	
	return 0;
	
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值