很简单——拓扑排序(队列实现)

2023-05-16

有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。
输入有若干组,每组中的第一行为二个数N(1<=N<=500),M;其中N表示队伍的个数,M表示接着有M行的输入数据。接下来的M行数据中,每行也有两个整数P1,P2表示即P1队赢了P2队。
给出一个符合要求的排名。输出时队伍号之间有空格,最后一名后面没有空格。
其他说明:符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。

input

4 3
1 2
2 3
4 3

output

1 2 4 3 
#include <iostream>
#include <string.h>
#include <queue>
using namespace std;
int map1[550][550], in[550];
bool vis[550];
int main()
{
    int N, M, a, b;
    while (cin >> N >> M)
    {
        queue<int>que;
        memset(map1,0,sizeof(map1));
        memset(vis,0,sizeof(vis));
        memset(in,0,sizeof(in));
        for (int i=0;i<M;++i)
        {
            cin>>a>>b;
            if(map1[a][b]==0)
            {
                map1[a][b]=1;
                in[b]++;
            }
        }
        for(int i=0;i<N;++i)
            for(int j=1;j<=N;++j)
                if(in[j]<=0 &&vis[j]==0)
                {
                    que.push(j);
                    vis[j] = 1;
                    for (int k=1;k<=N;++k)
                        if(map1[j][k]==1)//排除与j有关的所有有向边
                            in[k]--;
                    break;
                }
        for (;!que.empty();)
        {
            if(que.size() == 1)
            {
                cout << que.front();
                que.pop();
            }
            else
            {
                cout  << que.front() <<" ";
                que.pop();
            }
        }
        cout << endl;
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

很简单——拓扑排序(队列实现) 的相关文章

  • Python randint左闭右闭,range左闭右开!

    randint xff08 xff09 函数左闭右闭 xff0c range xff08 xff09 函数左闭右开 xff01 xff01 xff01
  • ESP8266_07----------------PWM呼吸灯

    先看下的效果 xff1a 呼吸灯 1 硬件电路 xff1a LED的阴极与我们的GPIO4相连 2 PWM介绍 xff1a PWM xff1a 英文名为 Pulse Width Modulation xff0c 是脉冲宽度调制的缩写 xff
  • 定时器初值计算

    假设单片机晶振频率为11 0592MHz 定时器0工作方式为方式1 计算定时1ms的初值 一 手工计算 11 0592MHz 61 11059200Hz 进行12分频 61 11059200 12 61 921600Hz 机器周期 61 1
  • Linux主机安装RDP协议

    使用linux主机安装RDP协议 xff0c 之后便可以使用mstsc进行连接linux主机 xff0c 复制粘贴拷贝数据都是可以的 xff0c 相当于一个图形化客户端 CentOS主机 xff1a yum y groupinstall X
  • Vue的使用和常用指令

    Vue js 是什么 xff1f 很多学习Vue的小伙伴都活有这样的疑惑 xff0c 通常我认为Vue是了不起的 xff0c 为什么了不起 xff1f 因为它能干你的事情实在是太多了 一 了不起的Vue 1 简单介绍 Vue 读音 vju
  • ABAQUS如何输出应力应变曲线(XY曲线)

    1 打开模型的odb文件 2 点击左侧工具区 gt 创建XY数据 3 弹出创建XY对话框 xff0c 选择ODB场变量输出 4 分别选择E xff1a 应变分量中的主应变 xff1b S xff1a 应力分量中的主应力 并点击单元 节点 x
  • win11安装Anaconda最新版本

    0 前言 xff08 废话可略过 xff1a 从题主开始学python安装anaconda xff0c 已经过去三四年了 xff0c 最近新换了电脑从头再来一遍 xff0c 想来大家学AI大都是从此一步开始的吧 xff0c 想到当初遇到了很
  • 常用的默认端口号

    端口号标识了一个主机上进行通信的不同的应用程序 1 HTTP协议代理服务器常用端口号 xff1a 80 8080 3128 8081 9098 2 SOCKS代理协议服务器常用端口号 xff1a 1080 3 FTP xff08 文件传输
  • Docker中安装MySQL5.7,并解决中文乱码问题

    Docker安装MySQL5 7 xff0c 并解决中文乱码问题 在Docker中安装5 7 一 安装常规步骤 在docker中安装软件大概就分为这几种 查询所需要的软件镜像pull镜像运行镜像 xff08 镜像变容器 xff09 查看容易
  • git失败

    提示 xff1a gnutls handshake failed The TLS connection was non properly terminated 先设置 export GIT SSL NO VERIFY 61 1 再重新git
  • 【解决办法】pip和python版本不一致

    1 查看pip的版本 pip V pip的版本是python3 5 2 查看python版本 python python 版本是3 8 可以看到pip和python的版本对不上 xff0c 怎么处理呢 xff1f 3 使用和python版本
  • CentOS7虚拟机 下 MySQL 5.7版本 在线详细安装配置、以及完全卸载教程

    x1f9e1 x1f49b x1f49a x1f499 x1f49c x1f90e x1f497 x1f9e1 x1f49b x1f49a x1f499 x1f49c x1f90e x1f497 感谢各位一直以来的支持和鼓励 xff0c 制
  • cuda11.2对应的tensorRT版本

    下载tensorRT的官网地址 xff1a https developer nvidia com nvidia tensorrt download 进去之后可以看到各种版本的tensorRT xff0c 但是没有找到只适用于cuda11 2
  • cmake———CXX_STANDARD is set to invalid value ‘17‘

    Q xff1a CXX STANDARD is set to invalid value 39 17 39 A xff1a 版本和cmake版本对不上 xff0c 进入CMakeLists txt xff0c 将set CMAKE CXX
  • 使用DiffusionDet在mot数据集上训练

    数据集处理 在https github com facebookresearch detectron2 detectron2 data datasets builtin py 中 xff0c 可以看到 xff0c detectron2中可以
  • 服务器挂载硬盘

    BuyVM Block Storage xff08 数据盘 xff09 挂载方法 垃圾站 cyhour com fdis l 可以查看硬盘 xff1a 1 找到数据盘之后 xff0c 格式化 mkfs ext4 F dev sdb 2 创建
  • setuptools:‘NoneType‘ object has no attribute ‘split‘

    问题 xff1a 运行 python m pip install e 或者 python setup py build develop 报错 anaconda3 envs querydet lib python3 7 site packag
  • Linux卸载pycharm

    1 确保pycharm程序全部关闭之后 xff0c 进入pycharm的安装目录 xff0c 默认在 opt 2 进入Pycharm的bin目录 xff08 我也不懂为什么 xff0c 或许知道的可以告诉一声 xff09 xff0c 我的是
  • Rust Web入门(一):TCP 和 HTTP Server

    本教程笔记来自 杨旭老师的 rust web 全栈教程 xff0c 链接如下 xff1a https www bilibili com video BV1RP4y1G7KF p 61 1 amp vd source 61 8595fbbf1
  • Rust Web入门(三):连接数据库

    本教程笔记来自 杨旭老师的 rust web 全栈教程 xff0c 链接如下 xff1a https www bilibili com video BV1RP4y1G7KF p 61 1 amp vd source 61 8595fbbf1

随机推荐

  • 如何进入 Windows 的 Ubuntu 子系统

    很久没有用这个 Ubuntu 子系统了 xff0c 最近是因为阿里云到期了 xff0c 又不打算续费 xff0c 所以才重新用起了它 记得原来直接按 Windows 43 R xff0c 输入 ubuntu 回车 xff0c 就能进入这个系
  • Git最新教程4——使用码云Gitee使用教程,创建项目仓库并上传代码

    此git栏目均有学习笔记以及相应的视频 xff0c 视频链接在最后 xff0c 学习笔记完全开源 xff1a https gitee com SiobhanMing Siobhan studyNote 目录 一 注册登录码云 xff0c 完
  • CentOS6.5 安装ntopng-1.2.0

    0 准备工作 安装libpcap xff1a 最好源码安装 yum install y libpcap 安装redis yum install y redis 1 安装 tar zxvf ntopng cd ntopng autogen s
  • Java编程题之四个数字组成不同且无重复的三位数

    题目 有1 2 3 4四个数字 xff0c 能组成多少个互不相同且无重复数字的三位数 xff1f 都是多少 xff1f span class token keyword int span count span class token ope
  • 联想笔记本摄像头被禁用

    联想笔记本摄像头被禁用 针对摄像头 xff08 相机 QQ视频 微信视频 xff09 能够正常打开 xff0c 但是不显示画面 xff0c 如果是找不到摄像头这种问题 xff0c 关了吧 xff0c 找其他的别看这个浪费时间 这种情况可能是
  • Zoom to learn, learn to zoom超分辨网络

    目录 论文主要贡献背景创新点一 SR RAW数据集创新点二 CoBi损失函数结果结论 论文 Zhang X Chen Q Ng R et al Zoom to learn learn to zoom C Proceedings of the
  • 操作系统复习之OS的运行环境

    目录 1 3 1用户态与核心态 1 3 2中断与异常 1 3 3系统调用 例题 1 3 1用户态与核心态 在计算机系统中 xff0c CPU通常运行两种不同性质的程序 一种是操作系统内核程序 另一种是用户自编程序 xff0c 简称用户程序或
  • Docker搭建nextcloud+onlyoffice+ldap+smb协作编辑

    安装docker span class token comment 通过yum源安装docker span sudo yum span class token operator span y install docker span clas
  • 装破解软件后,容易出现hardlock.sys蓝屏警告

    一般遇到这种情况先别着急重装系统 xff0c 先进入安全模式把刚才装的软件卸载 xff0c 包括文件夹删干净 然后可以把别的电脑的hardlock sys文件直接拷贝过来替换掉 xff0c 重启一般就可以
  • windows下C++连接本地MySQL数据库

    IDE选用CLion 这是我数据库里的数据 db1数据库里的user表 首先将本地MySQL的lb文件夹里的libmysql dll和libmysql lib这两个文件复制到cmake build debug文件夹下 xff0c 这两个文件
  • Openstack 知识点概述及基本常用命令

    Openstack OpenStack既是一个社区 xff0c 也是一个项目和一个开源软件 xff0c 提供开放源码软件 xff0c 建立公共和私有云 xff0c 它提供了一个部署云的操作平台或工具集 xff0c 其宗旨在于 xff1a 帮
  • Visual Studio 2017 运行、调试使用CMake构建的多可执行程序项目

    在 Windows 环境下 xff0c 笔者主要通过 Visual Studio 进行较大型项目的查看和运行调试 这里记录下使用 Visual Studio 编译 运行和调试可能包含有多个可执行程序的多文件项目的方法 xff0c 特别的 x
  • C语言实现链表的逆序的几种方式

    文章目录 通过头插法实现的通过双指针实现链表的逆序通过栈来实现的通过递归来实现 通过头插法实现的 1 通过头插法 xff08 两条链表 xff09 来实现的 通过遍历原来的链表 xff0c 将遍历得到的每一个节点都插入到新链表的头结点 xf
  • Ubuntu进入(安全模式)修改用户密码

    一 重启系统 xff0c 开机时 xff0c 长按shift进入grub菜单 xff08 有的不用按直接进入如下菜单 xff09 xff1b 选择高级选项 xff1b 回车继续 xff1b 二 选中recovery mode xff08 如
  • Node 之 React ref 最新版本的用法

    在进行React开发时 xff0c 有时在组件的代码中需要访问实际的Dom对象 xff0c 这个时候就要用到ref这个属性来将 dom对象的值保存进来 xff0c 以便代码访问 一 Create Ref 自从 React v16 3开始 x
  • Pagehelper分页插件之自定义COUNT用法

    记录最近遇到的一个小麻烦 1 背景 我这次的需求是实现用户在搜索框输入关键字进行模糊查询 其实挺简单的 xff0c 就是在原来别人的XML代码上做一点修改 xff0c 也就是查询的SQL语句做点改动 xff0c 就是增加三个字段的模糊匹配
  • 网络攻防——kali操作系统基本使用

    1 阅读前的声明 本文章中生成的木马带有一定的攻击性 xff0c 使用时请遵守网络安全相关的法律法规 xff08 恶意攻击操作系统属于违法行为 xff09 2 环境安装 生成木马主要需要如下工具 xff1a kali操作系统 xff0c V
  • Visual Studio Code安装教程(超详细)

    网盘自取 xff1a https pan baidu com s 1BQDyf7uqQopJ3UUZnQ0E6g 提取码 xff1a 2022 点击VSCodeSetup x64进行安装 弹出安装向导 xff0c 勾选我同意 xff0c 点
  • 【实习日记】Sftp & Python上传本地多级文件夹

    实现功能 xff1a 将本地多级文件夹上传至sftp服务器 1 测试 由于公司的sftp已经投入使用了 xff0c 没办法随便连接 xff0c 先在本地用shutil库实现一个文件夹到另一个文件夹的复制 xff0c 把一个本地文件夹当作远程
  • 很简单——拓扑排序(队列实现)

    有N个比赛队 xff08 1 lt 61 N lt 61 500 xff09 xff0c 编号依次为1 xff0c 2 xff0c 3 xff0c xff0c N进行比赛 xff0c 比赛结束后 xff0c 裁判委员会要将所有参赛队伍从前往