图论应用——拓扑排序

devtools/2024/11/12 14:13:03/

拓扑排序的原理和宽度优先搜索差不多

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;const int N = 100010;
int n,m;
int h[N],e[N],ne[N],idx;
int q[N],d[N];void add(int a,int b)
{e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}bool topsort()
{int hh=0,tt=-1;for(int i=1;i<=n;i++)if(!d[i]) q[++tt]=i;while(hh<=tt){int t = q[hh++];for(int i=h[t];i!=-1;i=ne[i]){int j = e[i];if(--d[j]==0){q[++tt]=j;}}}return tt==n-1;
}int main(void)
{scanf("%d%d", &n,&m);memset(h, -1, sizeof h);while (m -- ){int a,b;scanf("%d%d",&a,&b);add(a,b);d[b]++;}if(topsort()){for(int i=0;i<n;i++)printf("%d ",q[i]);}else puts("-1");return 0;
}


http://www.ppmy.cn/devtools/16527.html

相关文章

IO多路复用

select函数实现 #include <mystdio.h> #define PORT 8888 #define IP "192.168.124.18" int main(int argc, const char *argv[]) { //创建流式套接字文件 int sfd socket(AF_INET,SOCK_STREAM,0);//AF_INET IPv4 SOCK_STREAM 流式套接字 if(…

AR模块中通用对账的优化尝试

背景&#xff1a; 用户在唯品会下单后&#xff0c;是可以自由选择不同支付方式进行支付的&#xff0c;支付后&#xff0c;支付系统会将一笔收款单传送给AR&#xff0c;AR财务可以从此处看到收款情况。但是&#xff0c;真实的资金是按照不同支付方式&#xff0c;由银行或者其他渠…

离开A页面时,取消A页面的axios接口数据请求

需求&#xff1a;从A页面跳转至B页面时&#xff0c;要取消A页面的axios请求&#xff1b;有时候&#xff0c;我们可能需要在发送请求后取消它&#xff0c;比如用户在请求还未完成时离开了当前页面或者执行了其他操作&#xff0c;本文将介绍如何在使用 Axios 发送请求时取消这些请…

vscode中对 python 快速增加header 描述

在首选项→配置用户代码片段→python 然后再 Code/User/snippets/python.json文件中写入 {// Place your snippets for python here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the …

分享:9.3版本无缝导入AVEVA PDMS高版本工程12.0,12.1,E3D

9.3版本可以无缝导入AVEVA PDMS的工程。 UKP3d导入AVEVA PDMS工程的方法 http://47.94.91.234/forum.php?modviewthread&tid163583&fromuid6 (出处: 优易软件-工厂设计软件专家) &#xff08;从AVEVA PDMS导出时元件和等级的功能我们正做收尾工作&#xff0c;到时可以…

MacOS通过命令行开启关闭向日葵远程控制的后台服务

categories: [Tips] tags: MacOS Tips 写在前面 经常有小伙伴问我电脑相关的问题, 而解决问题的一个重要途径就是远程了. 关于免费的远程工具我试过向日葵和 todesk, 并且主要使用向日葵, 虽然 MacOS 下要设置很多权限, 但是也不影响其丝滑的控制. 虽然用着舒服, 但是向日葵…

服务器排障(Linux,Windows)

一&#xff0e;计算机的启动流程 二&#xff0e;系统服务 三&#xff0e;运行级别 四&#xff0e;运行级别被修改 五&#xff0e;Root密码被遗忘 六&#xff0e;设置Grub密码 七&#xff0e;设置bios密码 一、计算机启动流程 1、bios加电自检 对计算机的硬件进行检测&a…

Swift - swiftc

文章目录 Swift - swiftcswiftc存放在Xcode内部一些操作 Swift - swiftc swiftc存放在Xcode内部 Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin 一些操作 生成语法树&#xff1a; swiftc -dump-ast main.swift生成最简洁的SIL代码&#xff1a; swiftc…