/**
[模拟] 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 =
[模拟] hnu 12475 Condorcet Winners
最新推荐文章于 2025-03-12 20:10:42 发布
该博客主要介绍了一种模拟方法来解决HNU 12475题目的Condorcet优胜者问题。通过理解题目中一对一竞赛的设定,博主提出将问题转化为守擂赛形式,找到最后的胜出者,并验证其是否能击败所有对手。代码实现中,博主使用了C语言,通过比较矩阵中的胜负情况来确定优胜者。
订阅专栏 解锁全文
4226

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



