拓扑排序
CaprYang
这个作者很懒,什么都没留下…
展开
-
确定比赛名次 HDU - 1285 拓扑排序
标题 问题本质就是输出入度为0的节点然后删边继续 拓扑排序模版题 使用优先队列解决多种情况下输出最小编号的问题 AC代码 #include <stdio.h> #include <bits\stdc++.h> using namespace std; typedef long long ll; const int INF = 0x3f3f3f3f; const int M...原创 2018-11-22 00:09:01 · 369 阅读 · 0 评论 -
Educational Codeforces Round 49 (Rated for Div. 2) D. Mouse Hunt tarjan | 拓扑排序
题解 题目大意 有一些房间 每个房间布置老鼠夹需要一定代价 一个房间只能单向到达另一个房间 老鼠最开始可能出现在任何房间 问无论如何都能抓到老鼠的最小代价 按照题意 如果在一个环上则只需要在环内选取一个最小代价的点,如果在一个链上则只需要选取链的终点(终点可以为环) tarjan: 使用tarjan算法求出有向图的强连通分量,并缩为一个点代价为强连通分量内最小代价,最后只需要对缩点后出度为0的点求...原创 2019-02-12 20:11:58 · 489 阅读 · 0 评论 -
Codeforces Round #541 (Div. 2) D. Gourmet choice 并查集 拓扑排序
题解 题目大意,一个人第一天吃了n份食物第二天吃了m份食物,给你一个n*m的矩阵表示第一天的某份食物和第二天的某份食物哪个更好吃或一样好吃,要求你对每个食物进行打分满足所给矩阵。 首先使用并查集将一样好吃的情况缩为一个点进行处理,如果a>b则b<—a建一条单向边,如果a<b则a—>b建一条单向边。 初始入度为0的点评分设置为1,使用拓扑排序将当前点指向的点评分对当前点评分+...原创 2019-02-25 17:46:11 · 403 阅读 · 0 评论 -
有向无环图 CSU - 1804 拓扑排序 dp
题解 由于是有向无环图,可以使用拓扑排序+dp求解,令f[i]表示通过不同路径到达i节点的a的和。 拓扑排序不断的从入度为0的节点处理,如当前节点为i目标节点为j,每次f[j] += a[i] + f[i]。 a[i]表示i到j,由于是不同路径所以每条边都加。f[i]表示之前能到达i而i又能到达j所以之前能到达i的都能到达j,也是每条边都加。 最后将每个节点的f[i]和b[i]相乘求和即可。 AC...原创 2019-04-04 19:55:26 · 530 阅读 · 0 评论