![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
拓扑排序
henucyt
这个作者很懒,什么都没留下…
展开
-
拓扑排序专题 HDU - 1285 (裸拓扑+优先队列)
裸拓扑排序 #include<bits/stdc++.h> #define maxn 517 using namespace std; int G[maxn][maxn];//路径 int in_degree[maxn]; //入度 int ans[maxn]; int n,m; void toposort(){ for(int i = 1; i <= n; ...原创 2019-07-25 22:54:15 · 177 阅读 · 0 评论 -
拓扑排序专题 HDU - 3342
题意: 给出n个人的师徒关系,判断是否存在即是某个人的师傅又是其徒弟的关系 思路:用拓扑排序判断是否有环 #include<bits/stdc++.h> #define maxn 1010 using namespace std; bool G[maxn][maxn]; int in_degree[maxn]; int n,m; priority_queue<int...原创 2019-07-25 22:55:10 · 184 阅读 · 0 评论 -
拓扑排序专题 HDU - 2647 反向建图
反向建图+判断等级就可以了 #include<bits/stdc++.h> #define maxn 10005 using namespace std; int in_degree[maxn],add[maxn]; vector<int>G[maxn]; queue<int>q; int n,m,sum=0; int toposort() { q...原创 2019-07-25 22:54:08 · 129 阅读 · 0 评论 -
拓扑排序专题 POJ - 1094
•题意:对于N个大写字母,给定它们的一些偏序关系,要求判断出经过多少个偏序关系之后可以确定它们的排序或者存在冲突,或者所有的偏序关系用上之后依旧无法确定唯一的排序。 •思路:题目要求的是经过多少个关系之后就可以确定答案,因此每读入一个关系,就要进行一次拓扑排序,如果某一次拓扑排序之后可以确定它们的唯一排序或者发现冲突存在,记录第几步,后面的直接略过。 不唯一确定:多个点入度为0,则不知道哪...原创 2019-07-25 22:53:56 · 249 阅读 · 0 评论 -
拓扑排序专题 HDU - 4857 反向建图+逆向输出
•注意此题不是保证字典序,而是要最小的尽量在前面。 •比如 正向拓扑排序不能解决这个问题,只能反向建图再逆序输出,在拓扑排序时尽量让大数在前(优先队列)这样逆向输出后就可以保证1.2.3....尽量在前 #include <iostream> #include <stdio.h> #include <string.h> #include <...原创 2019-07-25 22:53:33 · 173 阅读 · 0 评论 -
拓扑排序专题 POJ - 3687 反向建图+逆序输出
POJ - 3687 跟hdu 4857一样只是最后输出的不是拓扑排序数列,而是每个节点在序列中的位置 输出改一下就可以了 #include <iostream> #include <stdio.h> #include <string.h> #include <vector> #include <algorithm> #in...原创 2019-07-25 22:53:13 · 157 阅读 · 0 评论