拓扑排序
分享关于拓扑排序的知识以及题解
MangataTS
一个爱折腾的Coder
展开
-
HDU2647Reward(拓扑排序)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2647 思路 我们将员工之间的关系作为边,从低工资指向高工资,然后我们跑一遍拓扑排序,再过程中我们通过pair<int,int> 存储每一个员工的id和reward 因为奖励最低 888888888 于是我们入度为 000 的点的工资就是 888888888 往后每推一层工资加一,最后我们将这 nnn 个员工的工资统计起来即可 代码 #include<bits/stdc++.h> usin原创 2022-03-29 20:48:12 · 1363 阅读 · 0 评论 -
HDU1285确定比赛名次(拓扑排序+优先队列)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1285 思路 每场比赛的结果我们可以看成一个有向图,从胜利的一方指向失败的一方,在这个有向图的入度为0的点就是最外层不能确定排名的点,然后我们按照编号从小到大排序,将这些点保存在ans中,然后我们将这些点的出度全部清空,然后再看下一层,这其实就是拓扑排序啦,只不过我们需要保证排名不唯一的情况下先输出编号小的队伍,那么我们可以用优先队列来维护这个拓扑排序,更多详情请看代码哦 代码 #include<bits/原创 2022-03-29 17:09:40 · 1219 阅读 · 0 评论 -
AcWing 848. 有向图的拓扑序列(拓扑排序模板)
题面链接 https://www.acwing.com/problem/content/850/ 思路 对于一个有向图来说,只有无环有向图才有拓扑序列,也可以说一个无环有向图必然有拓扑序列,但是不唯一,我们通过逐步将入度为0的点加进我们的队列里面,然后不断地删边,然后再将下一个度为0的点放进来这样就是我们拓扑排序的一种求解方式了 代码 #include<bits/stdc++.h> using namespace std; //----------------自定义部分-------------原创 2022-02-08 23:44:17 · 388 阅读 · 0 评论