[模拟] hnu 12475 Condorcet Winners

该博客主要介绍了一种模拟方法来解决HNU 12475题目的Condorcet优胜者问题。通过理解题目中一对一竞赛的设定,博主提出将问题转化为守擂赛形式,找到最后的胜出者,并验证其是否能击败所有对手。代码实现中,博主使用了C语言,通过比较矩阵中的胜负情况来确定优胜者。

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

/**
[模拟] hnu 12475 Condorcet Winners
这题关键是,领会题意啊。
给出的矩阵信息可以得到任何两个人的胜负情况,问谁能击败所有人
直接枚举每种情况坑定TLE,其实题目说的很明白了,in a one-on-one contest
看成守擂赛,只有最后的胜出者可能是真正赢家,那他再次和之前所有人判断一下即可。
*/
#include <stdio.h>
#include <string.h>

#define N 512
#define M 2512
int pos[N][M];
int n,m;
int cmp(int k1,int k2)
{
    int i,s1 = 0,s2 = 0;
    for(i = 0; i < m; ++i)
        if(pos[i][k1] < pos[i][k2])
            ++s1;
        else
            ++s2;
    return s1 - s2;
}
int main()
{
    int i,j,k1,cas = 0;
    while(scanf("%d%d",&m,&n) == 2 && n)
    {
        for(i = 0; i < m; ++i)
            for(j = 0; j < n; ++j)
            {
                scanf("%d",&k1);
                pos[i][k1] = j;
            }
        k1 = 0;
        for(i =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值