图论-强连通分量
Maxwei_wzj
AFO
展开
-
【APIO2009T3】抢掠计划-强连通分量缩点+DAG单源最长路
【APIO2009T3】抢掠计划-强连通分量缩点+DAG单源最长路原创 2017-08-08 10:59:42 · 383 阅读 · 0 评论 -
【BZOJ1093】最大半连通子图(ZJOI2007)-SCC缩点+拓扑序DP
测试地址:最大半连通子图 做法:本题需要用到SCC缩点+拓扑序DP。 乍一看这题好像没什么思路,但我们发现,如果一个点在一个最优的方案中,那么该点所在的强连通分量肯定也在这个方案中,不然就不是最优方案,因此我们先把强连通分量缩起来,这样我们就得到了一个DAG,问题变成在DAG上取一些点,使得两两间都有一个点能到达另一个点。 观察这个性质,我们发现这个性质成立当且仅当存在一条链连接所有选择的点...原创 2018-05-28 17:39:45 · 252 阅读 · 0 评论 -
【BZOJ3495】Riddle(PA2010)-2-SAT+优化建图
测试地址:Riddle 题目大意:n(≤106)n(≤106)n(\le 10^6)个城市被划分成k(≤n)k(≤n)k(\le n)个郡,有m(≤106)m(≤106)m(\le 10^6)条边,要求从每个郡中选取一个城市作为首都,并满足每条边至少有一个端点为首都,判断有没有解。 做法:本题需要用到2-SAT+优化建图。 看到这题第一个想到的是网络流,然而看到这个夸张的数据范围就知道不可能...原创 2018-05-27 20:42:53 · 394 阅读 · 0 评论 -
【BZOJ2208】连通数(JSOI2010)-SCC+DP+bitset
测试地址:连通数 做法:本题需要用到SCC+DP+bitset。 看到和有向图的连通性有关就想到用SCC缩点,对于缩出来的DAG,一个直观的想法就是DP,大多数同学应该会马上想到这样的状态定义:令f(i)f(i)f(i)为能到达点iii的点的数目,然后blablabla…… 很遗憾,这个状态定义是错的,而且非常明显是错的,因为如果有两个不同的点能到达当前点,而又有一个相同的点能到达这两个点,...原创 2018-05-12 10:52:56 · 198 阅读 · 0 评论 -
【BZOJ1797】最小割(AHOI2009)-最小割+SCC
测试地址:最小割 做法:本题需要用到最小割+SCC。 首先,根据最大流和最小割的关系不难看出,跑完最大流后没有满流的边都不可能出现在最小割中。 那么对于剩下的边,如果它的两个端点在残余网络中(注意,残余网络是带反向边的)在同一个强连通分量内,很显然它也不可能出现在最小割中(因为割掉这条边没什么意义),否则它就可能出现在最小割中。 而对于一条边,如果它的两个端点在残余网络中分别和源点和汇点在...原创 2018-04-26 12:09:21 · 216 阅读 · 0 评论 -
【BZOJ4945】游戏(NOI2017)-2-SAT+枚举
测试地址:游戏 做法:本题需要用到2-SAT+枚举。 看到大部分的地图都只能用两种赛车,赛车之间有一些依赖关系,这显然就是个2-SAT。而对于极少数的能用三种赛车的地图,我们枚举这些地图是不用A还是不用B,这样可以保证不漏掉方案,对每种情况做2-SAT即可,这样我们就解决了这一题,时间复杂度为O(2dn)O(2dn)O(2^dn)。 注意一个比较重要的处理是,建图时如果一条限制指向的点不能使...原创 2018-05-10 15:50:56 · 224 阅读 · 0 评论 -
【BZOJ2707】走迷宫(SDOI2012)-SCC缩点+拓扑排序+期望DP+高斯消元
测试地址:走迷宫 题目大意:有一个nnn个点的有向图,人从起点SSS出发,每次等概率随机选择一条出边走出,问走到终点TTT的期望步数。n≤104n≤104n\le 10^4,一个强连通分量中的点数不超过100100100。 做法:本题需要用到SCC缩点+拓扑排序+期望DP+高斯消元。 我们很快就能根据标准的期望逆推型DP得到该题的状态转移方程,因为图中存在环,所以需要高斯消元,然而O(n3)...原创 2018-04-07 14:46:59 · 357 阅读 · 0 评论 -
【POJ3207】Ikki's Story IV - Panda's Trick- 2-SAT
【POJ3207】Ikki's Story IV - Panda's Trick- 2-SAT原创 2017-08-01 18:13:00 · 281 阅读 · 0 评论 -
【HDU3622】Bomb Game-二分答案+2-SAT
【HDU3622】Bomb Game-二分答案+2-SAT原创 2017-08-01 19:46:58 · 552 阅读 · 0 评论 -
【BZOJ4727】Turysta(POI2017)-构造+链表+SCC
测试地址:Turysta 题目大意:给定一张竞赛图,要求求出从每个点出发的,经过点数最多的一条简单路径,输出方案。 做法:本题需要用到构造+链表+SCC。 首先可以证明一张竞赛图必有一条哈密顿路径(反证法),又可以证明一张强连通的竞赛图必有一条哈密顿回路(这个暂时不知道怎么证,不过看了下面的构造方法差不多也能明白)。我们先来找出原图的哈密顿路径。 竞赛图的任意导出子图一定都是竞赛图,所以我...原创 2018-07-07 10:41:39 · 215 阅读 · 0 评论