首页 > 其他分享 >3651: 确定比赛名次

3651: 确定比赛名次

时间:2023-05-11 20:01:57浏览次数:38  
标签:名次 比赛 int memset cd rd vis sizeof 3651

描述

 

有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。
 

 

输入

 

输入有若干组,每组中的第一行为二个数N(1<=N<=500),M(0<=M<=10000);其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即P1队赢了P2队。
 

 

输出

 

给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。

其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。
 

 

样例输入

 

4 3
1 2
2 3
4 3

样例输出

 1 2 4 3

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e3+10,inf = 0x3f3f3f3f;
int rd[N],cd[N],ans[N],vis[N];
int t,n,m;
int g[N][N];
void topsort()
{
    queue<int>q;
    memset(vis,0,sizeof(vis));
    for(int i=1;i<=n;i++)
    {
        int pos;
        for(int j=1;j<=n;j++)
            if(rd[j]==0)
            {    
                ans[i] = j;pos = j;
                break;
            }
        rd[pos] = -1;
        for(int j=1;j<=n;j++)
            if(g[pos][j])rd[j]--;
        
    }

}
int main()
{
    while(cin>>n>>m)
    {
        memset(rd,0,sizeof(rd));
        memset(cd,0,sizeof(cd));
        memset(g,0,sizeof(g));
        for(int i=1;i<=m;i++)
        {
            int x,y; cin>>x>>y;
            if(!g[x][y])rd[y]++;
            g[x][y] = 1;
        }
        topsort();
        for(int i=1;i<=n;i++)
        {
            cout<<ans[i];
            if(i!=n)cout<<" ";
            else cout<<endl;
        }        
    }

     return 0;
}

 

 

标签:名次,比赛,int,memset,cd,rd,vis,sizeof,3651
From: https://www.cnblogs.com/jyssh/p/17392062.html

相关文章

  • 比赛胜率
    Problem有\(n\)天,每天有\(a_i\)场比赛。如果截止到第\(i\)天的胜率小于第\(i-1\)天的胜率,乐乐就会在第天心情变得更好;否则,他的心情会变得更糟。其中,第\(i\)天的胜率指的是,当\(i=0\)时为\(0\),否则指的是第\(i\)天之前玩游戏赢的次数总和除以第\(i\)天之前玩游戏......
  • AtCoder比赛记录(一)
    这里记录的是这个账号的比赛情况。ARC1572023-2-25Solved:4/62189->2216C(Medium,1802)给定一个XY矩阵,一条左上角到右下角的路径的分值定义为路径上连续两个Y的组数。求所有可能路径的分值的平方和。Solution:经典DP。递推两个量,一个是到(i,j)所有路径的分值和\(f_{i,j}\),......
  • AtCoder比赛记录(二)
    这里记录的是这个账号的比赛情况。ABC3002023-4-29Solved:7/80->1200F(Medium-,1846)给定由o和x组成的字符串\(S\)。将\(S\)复制\(m\)遍,然后将其中\(k\)个x改成o,求改完之后连续的o最多可能有多少个。Solution:贪心。设最多能改完\(t\)个完整的\(S\),考虑三类情况:最长连续......
  • 比赛分析(完整版)
    一、数据分析该数据集采用COCO格式给出标注信息,即将所有训练图像的标注都存放到一个json文件中,数据以字典嵌套的形式存放。对数据集进行分析:检测数据集涉及3个场景,分别是“火灾检测”、“工业仪表检测”和“安全帽检测”,共7114张图像。这些图像按8:2的比例划分为训练集、验证集......
  • 不良条件视觉感知专栏(二)数据集和比赛总结
    前言 本文介绍了不良条件视觉感知专栏中的数据集和比赛总结。本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框......
  • 观"名声大震"绝赛,挖比赛内幕
           湖南台的"名声大震"已经结束,最终以4:2的结果结束.        就是在这个样一个结果里,让我看到了不少疑惑的地方.      1.主办方的分区以何为依据      2.主办方公布各分区成绩的次序又是以何为标准      3......
  • 2022年中国大学生程序设计竞赛女生专场-比赛题解
    比赛链接:Dashboard-2022年中国大学生程序设计竞赛女生专场-CodeforcesA.减肥计划(模拟)模拟,如果队列第一个人体重是最大的了,则这个人的位置不会再变,直接输出即可。#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;intmain(){ios::sync_with_......
  • 对飞桨小汪比赛的一些思路
    纵观各大比赛,常见的打榜技巧如下 针对每一点思路,我首先对他们进行详细的解释,再针对飞桨小汪这个比赛做出一些具体的上分策略详细解释思路1:数据处理数据增强:使用数据增强技术可以增加数据的多样性和数量,从而提高模型的鲁棒性和泛化能力。例如,可以进行镜像翻转、随机裁剪、......
  • 【230414-1】乒乓球队的10名队员中有3名主力队员,派5名参加比赛,3名主力要安排在第一、
    ......
  • PAT Basic 1082. 射击比赛
    PATBasic1082.射击比赛1.题目描述:本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军;谁差得最远,谁就是菜鸟。本题给出一系列弹洞的平面坐标(x,y),请你编写程序找出冠军和菜鸟。我们假设靶心在原点(0,0)。2.输入格式:输入在第一行中给出一个正整数N(≤10......