考虑在每个点的出边中删除哪些.如果其出边所指向的点中存在某点能到达另一点,那么显然指向被到达点的边是没有用的.于是拓扑排序逆序处理,按拓扑序枚举出边,bitset维护可达点集合即可. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> #include<bitset&…
4484: [Jsoi2015]最小表示 题目链接 题解: bitset的题感觉都好巧妙啊QAQ. 因为题目中给出的是一个DAG,如果\(u->v\)这条边可以删去,等价于还存在一个更长的路径可以使得\(u\)到\(v\). 这里的"更长"我们可以用拓扑序来搞,拓扑序大的相对于起点也肯定更长.那么思路就是对于每个点考虑删掉其出边,并且枚举边的时候拓扑序是从小到大的,然后来检验连通性. 但如果我们按照拓扑序来搞的话,很显然是错的.我们其实可以直接按着拓扑序反着来.这样的话后面点的连…
正题 题目链接:https://www.luogu.com.cn/problem/P6134 题目大意 给出一张\(n\)个点\(m\)条边的\(DAG\).求联通情况不变的情况下最多删除几条边. \(1\leq n\leq 3\times 10^4,0\leq M\leq 10^5\) 解题思路 拓扑排序后,如果确定了后面若干个的最优解,那么不会影响到前面的决策,我们只需要对于每个点考虑删除最多的出边即可. 从后往前枚举,对于一个点连接的集合\(E\),按照拓扑序从小到大排后,每次加入一个点和…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4484 每个点上存一下它到每个点的连通性.用 bitset 的话空间就是 \( \frac{n^2}{8} \) 左右. 按拓扑序从大到小枚举每个点.对于每个点判断它的哪些出边能删.然后就不太会了. 其实它的出边也不是都是等价的.连向 “拓扑序较小的点” 的出边价值更高.因为能删边的情况是 u->x->v && u->v . 所以按指向的点拓扑序递增的顺序枚举出边,用…
什么是拓扑排序? 先穿袜子再穿鞋,先当孙子再当爷.这就是拓扑排序! 拓扑排序说白了其实不太算是一种排序算法,但又像是一种排序(我是不是说了个废话qwq) 他其实是一个有向无环图(DAG, Directed Acyclic Graph的所有顶点的线性序列,该序列需要满足两个条件: 每个节点只能出现一次 若存在一条A到B到路径,则在拓扑序列中A必然出现在B前面 而有向无环图才具有拓扑排序,非DAG图则没有拓扑排序一说 先看一道拓扑排序的水题趴(>_<) UVa 10305 - Ordering T…
Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 348  Solved: 172[Submit][Status][Discuss] Description [故事背景]还记得去年JYY所研究的强连通分量的问题吗?去年的题目里,JYY研究了对于有向图的“加边”问题.对于图论有着强烈兴趣的JYY,今年又琢磨起了“删边”的问题.[问题描述]对于一个N个点(每个点从1到N编号),M条边的有向图,JYY发现,如果从图中删去一些边,那么原图的连通性会发生改变:…
题意 给你一个 \(n\) 个点 \(m\) 条边的 \(\rm DAG\) ,询问最多能够删除多少条边,使得图的连通性不变 \(n\leq 3\times 10^4\ ,m\leq 10^5\) . 分析 假设有点 \(u,v,x\) ,且有边 \(u \rightarrow v,\ u \rightarrow x,\ x \rightarrow v\),那么此时 \(u \rightarrow v\) 这条边可以被删除. 于是直接拓扑排序,利用 \(bitset\) 求出每个点可以到达的点集…
1565: [NOI2009]植物大战僵尸 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1972  Solved: 917[Submit][Status][Discuss] Description Input Output 仅包含一个整数,表示可以获得的最大能源收入.注意,你也可以选择不进行任何攻击,这样能源收入为0. Sample Input 3 2 10 0 20 0 -10 0 -5 1 0 0 100 1 2 1 100 0 Sample…
描述 一条单向的铁路线上,依次有编号为 1, 2, ..., n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x,则始发站.终点站之间所有级别大于等于火车站 x 的都必须停靠.(注意:起始站和终点站自然也算作事先已知需要停靠的站点)例如,下表是 5 趟车次的运行情况.其中,前 4 趟车次均满足要求,而第 5 趟车次由于停靠了 3 号火车站(2 级)却未停靠途经的 6 号火车站(亦为 2 级)而不满足要求…
Description 传送门 Solution em本题知识点是用网络流求最大点权闭合子图. 闭合图定义:图中任何一个点u,若有边u->v,则v必定也在图中. 建图:运用最小割思想,将S向点权为正的点连边,流量为点权:点权为负的点向T连边,流量为点权的绝对值:原图之间的边流量为inf(表明不能割).答案就是所有正点权之和-该网络流图的最小割(证明还未补qaq) 是不是觉得这个闭合图定义特别的眼熟?似乎可以套在这道题上.(题意:假如你要吃掉某个植物,需要先吃掉这个植物对应的集合,求最大的能源收入…