
拓扑排序
拓扑排序
SSL_wj
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P2272&&ybtoj【图论】4章3题【最大半连通子图】
最大半连通子图题目P2272解析看一下定义,发现强连通分量一定是半连通子图,直接tarjan缩点建DAG然后想一下,发现剩下的在DAG上都是单链结构,于是拓扑DP统计即可发现建重边会影响答案,去重即可code:#include<queue>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;inline int max(int x,int y原创 2021-06-12 11:15:00 · 95 阅读 · 0 评论 -
P3387&&ybtoj【图论】4章1题【【模板】缩点】
【模板】缩点题目P3387解析发现权值非负,显然多走更优珂以设置一个像bellman-ford一样的东西,不断更新,但显然会T考虑拓扑,但会出现环万恶的tarjan算法出现了!先扔概念:DFS树(搜索树):DFS中访问到的点及走过的边DFS序(dfn):DFS中访问顺序的id树枝边:即走过的边深度:在DFS树上与根节点的距离前向边:从深度小的节点指向深度大的节点的非树枝边后向边:从深度大的节点指向深度小的节点的非树枝边横叉边:横跨两段树枝的非树枝边连通:可以互相到达连通分原创 2021-06-12 10:59:50 · 88 阅读 · 0 评论 -
P4316&&ybtoj【数学基础】6章3题【绿豆蛙的归宿】
绿豆蛙的归宿题目P4316解析发现是DAG,考虑DP发现正序不好求,建反图设disidis_idisi为在反图上i到n的期望长度,kik_iki为在正图上的出度,则有disi=∑jEj+wi,jkidis_i=\sum_j\frac{E_j+w_{i,j}}{k_i}disi=j∑kiEj+wi,j直接拓扑dp即可code:#include<cstdio>#include<queue>using namespace std;int d[10原创 2021-05-22 11:15:41 · 104 阅读 · 0 评论 -
P3275&&ybtoj【图论】4章4题【糖果】
糖果题目P3275解析显然的差分约束,然而会T(别跟我说乱搞做法)发现边权非0即1,考虑以边权为0的边建图并Tarjan缩点O(n+m),然后判一下每个强连通分量内是否有1的边,如果没有直接拓扑DP即可code:#include<cstring>#include<cstdio>#include<queue>#define int long longusing namespace std;inline int max(int x,int y){re原创 2021-05-05 08:31:16 · 96 阅读 · 0 评论 -
U149505【舞会邀请】
舞会邀请题目舞会邀请解析请大佬出题就是好拓扑排序模板题,水掉其实是为了填这道题没有用过评测机的坑,实际上早过了#include<iostream>#include<cstring>#include<cstdio>using namespace std;int n,head[110],t,s=0,u[110],q=0;bool a[110][110],ok;bool check(int dep){ for(int i=1;i<=n;i+原创 2021-01-22 14:30:53 · 96 阅读 · 0 评论 -
P1983【车站分级】
车站分级题目车站分级解析拓扑排序,毫无难度唯一难的是建图scanf("%d",&t);for(int j=1;j<=t;j++)scanf("%d",&o[j]);k=o[1]+1;for(int j=2;j<=t;j++){ while(k!=o[j]) { for(int l=1;l<=t;l++)if(!ok[k][o[l]])ok[k][o[l]]=1,add(k,o[l]),in[o[l]]++; ++k; } ++k;}原创 2021-01-20 18:35:08 · 165 阅读 · 0 评论 -
P1137【旅行计划】
旅行计划题目拓扑排序模板题旅行计划解析真就水题思路:1,看到题意看不懂,点开标签发现拓扑,直接打上一份拓扑排序2,样例过了,交一下3,AC没有第4步了code:#include<cstdio>#include<queue>using namespace std;int k,n,m,head[100010],a[200010],b[200010],nxt[200010],ans[100010],in[100010];queue <int> c原创 2021-01-20 18:00:07 · 162 阅读 · 1 评论 -
P1347【排序】
排序题目排序解析对于题目中的三种情况,我们可以发现:1,有一条长度为n-1的链贯穿了n个点2,有环3,除了1和2都是32很好判断,1的判断方法可以参照这一题解:生物题将那一题的加法稍作改变,判断条件为有一个点值为n即可code:#include<queue>#include<cstdio>#include<cstring>#include<iostream>using namespace std;int n,m,in[27],原创 2021-01-20 17:04:39 · 175 阅读 · 1 评论 -
P4017【最大食物链计数】
最大食物链计数题目最大食物链计数解析裸拓扑排序,稍作改动即可AC注意事项:1,只有入度为0的点答案初值才为12,只有出度为0的点才要累加进答案3,取余code:#include<cstdio>#include<queue>#define mod 80112002using namespace std;int n,m,in[5010],head[5010],a[500010],b[500010],nxt[500010],ans[5010],t=0,k;b原创 2021-01-20 16:28:54 · 273 阅读 · 0 评论 -
SSL_2876【工程】
工程题目张三是某工程公司的项目工程师。一天公司接下一项大型工程,该公司在大型工程的施工前,先要把整个工程划分为若干个子工程,并把这些子工程编号为1、2、…、N;这样划分之后,子工程之间就会有一些依赖关系,即一些子工程必须在某些子工程完成之后才能施工,公司需要工程师张三计算整个工程最少的完成时间。对于上面问题,可以假设:1、根据预算,每一个子工程都有一个完成时间。2、子工程之间的依赖关系是:部分子工程必须在一些子工程完成之后才开工。3、只要满足子工程间的依赖关系,在任何时刻可以有任何多个子工程同时原创 2021-01-09 16:31:38 · 100 阅读 · 0 评论 -
SSL_1325【奖金】
奖金题目由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元。Input两个整数n,m,表示员工总数和代表数;以下m行,每行2个整数a,b,表示某个代表认为第a号员原创 2021-01-09 15:33:20 · 471 阅读 · 0 评论