首页 > 【模板】拓扑排序
头像 YOU&YOU
发表于 2022-06-30 22:13:16
本题可分为两部分:1.根据输入使用邻接表建图,并将每个顶点的入度记录下来;2.采用类似于BFS(广搜)的思想,依次遍历入度为0的顶点,并根据邻接表进行相应顶点入度的调整,最终判断是否可以得到拓扑排序并进行相应的输出。 对于第一部分,可以使用每个元素为一个数组的vector容器模拟邻接表进行建图,v 展开全文
头像 inspirem
发表于 2022-04-26 10:06:26
n,m = map(int,input().split()) graph = dict((str(i),[]) for i in range(1,n+1)) # print(graph) # 边数 for i in range(m): j,k = input().split() 展开全文
头像 mshentai
发表于 2022-05-11 09:20:17
采用广度优先遍历 有个坑,最后必须不能有空白符' ',否则会算错误 #include <iostream> #include <vector> #include <queue> using namespace std; int main() { int 展开全文
头像 KEY.L
发表于 2022-06-30 21:23:45
一看到板子题就是好啊~~~ 直接上之前做过的笔记~~~~ 接下来就是代码啦,具体还是要自己敲自己学哦! int n,m; const int maxn=1e5+100; int ne[maxn],e[maxn],h[maxn],idx,q[ma 展开全文
头像 牛客658646844号
发表于 2022-09-04 18:42:42
//找了半天错,结果是因为最后一个输出不能有空格 //非常常规的拓扑排序模板题 #include <iostream> #include <vector> #include <queue> using namespace&n 展开全文
头像 过过过呀Glik
发表于 2022-06-25 18:43:06
">#include<stdlib.h> typedef struct EdgeNode{ int adjext; struct EdgeNode* next; }EdgeNode; typedef struct VerteNode{ int in; 展开全文
头像 梦想不会灭
发表于 2022-05-06 21:50:13
import java.io.*; import java.util.*; public class Main {     /**      * 拓扑 展开全文
头像 AAA批发电锯
发表于 2023-08-13 00:07:06
from collections import deque n, m = map(int, input().split()) # 读取顶点数和边数 graph = {v: set() for v in range(1, n + 1)} # 邻接表来描述图(键:顶点,值:相邻点集合) inde 展开全文
头像 牛客475170582号
发表于 2025-03-26 17:16:27
构造拓扑序列步骤从图中选择一个入度为零的点。输出该顶点,从图中删除此顶点及其所有的出边。重复上面两步,直到所有顶点都输出,拓扑排序完成,或者图中不存在入度为零的点,此时说明图是有环图,拓扑排序无法完成,陷入死锁。 import sys E_num: int = None V_num: int = 展开全文
头像 Ivy2019
发表于 2022-10-12 10:54:39
描述 给定一个包含nn个点mm条边的有向无环图,求出该图的拓扑序。若图的拓扑序不唯一,输出任意合法的拓扑序即可。若该图不能拓扑排序,输出-1−1。 输入描述: 第一行输入两个整数n,mn,m ( 1\le n,m \le 2\ 展开全文

等你来战

查看全部