一名苦逼的OIer,想成为ACMer

Iowa_Battleship

随笔分类 -  强连通分量

洛谷1726 上白泽慧音
摘要:"原题链接" 裸的$tarjan$找强连通分量,记录最大强连通分量即可,注意字典序。 cpp include using namespace std; const int N = 5010; const int M = 1e5 + 10; int fi[N], di[M], ne[M], dfn[N 阅读全文

posted @ 2018-11-03 11:03 Iowa_Battleship 阅读(102) 评论(0) 推荐(0) 编辑

BZOJ1179或洛谷3672 [APIO2009]抢掠计划
摘要:"BZOJ原题链接" "洛谷原题链接" 在一个强连通分量里的$ATM$机显然都可被抢,所以先用$tarjan$找强连通分量并缩点,在缩点的后的$DAG$上跑最长路,然后扫一遍酒吧记录答案即可。 cpp include using namespace std; const int N = 5e5 + 阅读全文

posted @ 2018-10-15 14:08 Iowa_Battleship 阅读(130) 评论(0) 推荐(0) 编辑

洛谷1262 间谍网络
摘要:"原题链接" 因为在一个强连通分量里,所有间谍互相(直接或间接)都掌握着证据,所以只要有一个间谍被控制,那么这整个强连通分量里的间谍都被控制。 所以我们可以对其进行缩点,并记录该强连通分量里的愿意被收买的间谍所需要最小资金以及编号最小的间谍。 对于缩点后的$DAG$,显然入度为$0$的点必须能被收买 阅读全文

posted @ 2018-10-14 17:10 Iowa_Battleship 阅读(183) 评论(0) 推荐(0) 编辑

洛谷3119 [USACO15JAN]草鉴定Grass Cownoisseur
摘要:"原题链接" 显然一个强连通分量里所有草场都可以走到,所以先用$tarjan$找强连通并缩点。 对于缩点后的$DAG$,先复制一张新图出来,然后对于原图中的每条边的终点向新图中该边对应的那条边的起点连一条边,表示逆向走一次,且之后不会再逆向了。 最后在该图上跑$SPFA$求单源最长路即可。 cpp 阅读全文

posted @ 2018-09-25 13:23 Iowa_Battleship 阅读(115) 评论(0) 推荐(0) 编辑

BZOJ1051或洛谷2341 [HAOI2006]受欢迎的牛
摘要:"BZOJ原题链接" "洛谷原题链接" 显然在一个强连通分量里的奶牛都可以相互喜欢,所以可以用$tarjan$求强连通并缩点。 要求明星奶牛必须被所有人喜欢,显然缩点后的图必须满足只有一个点没有出度,因为若有两个点没有出度,那么其中一个点所包含的奶牛显然不能喜欢另一个点的奶牛。 而这个唯一的没有出度 阅读全文

posted @ 2018-09-24 21:22 Iowa_Battleship 阅读(114) 评论(0) 推荐(0) 编辑

洛谷3387 【模板】缩点
摘要:"原题链接" 做了挺多强连通分量缩点题,结果模板还晾着。。 $tarjan$找强连通缩点,然后拓扑排序$DP$就好。 cpp include using namespace std; const int N = 1e4 + 10; const int M = 1e5 + 10; struct eg 阅读全文

posted @ 2018-09-21 13:24 Iowa_Battleship 阅读(107) 评论(0) 推荐(0) 编辑

BZOJ1093或洛谷2272 [ZJOI2007]最大半连通子图
摘要:"BZOJ原题链接" "洛谷原题链接" 和 Going from u to v or from v to u?( "题解" )这道题类似,只不过是求最大子图的大小和个数而已。 一样用$tarjan$求强连通分量,并进行缩点,然后对于缩点后的$DAG$进行拓扑排序$DP$。 定义$size[i]$表示 阅读全文

posted @ 2018-09-20 21:16 Iowa_Battleship 阅读(151) 评论(0) 推荐(0) 编辑

POJ2762 Going from u to v or from v to u?
摘要:"原题链接" 显然在一个强连通分量里,任意两个点都可以到达,所以我们先用$tarjan$求强连通分量,并进行缩点。 对于缩点后的$DAG$,必须满足是一条链,即在对该$DAG$进行拓扑排序的过程中,在任何时候都 有且只有一个点是入度为$0$ 。 因为若有两个点或以上的点同时出现入度为$0$,那么这几 阅读全文

posted @ 2018-09-19 20:45 Iowa_Battleship 阅读(121) 评论(0) 推荐(0) 编辑

POJ3683 Priest John's Busiest Day
摘要:"原题链接" $2 SAT$模板题。 对于有时间重叠的婚礼转换成$2 SAT$的命题形式连边,用$tarjan$找强连通分量并判断,确定方案即可。 然而一道模板题,我因为数组开小了调了一晚上。。。 阅读全文

posted @ 2018-09-12 21:13 Iowa_Battleship 阅读(111) 评论(0) 推荐(0) 编辑

POJ3678 Katu Puzzle
摘要:"原题链接" $2 SAT$模板题。 将$AND,OR,XOR$转换成$2 SAT$的命题形式连边,用$tarjan$求强连通分量并检验即可。 cpp include using namespace std; const int N = 2010; const int M = 4e6 + 10; i 阅读全文

posted @ 2018-09-12 13:28 Iowa_Battleship 阅读(131) 评论(0) 推荐(0) 编辑

洛谷4782 【模板】2-SAT 问题
摘要:"原题链接" $2 SAT$模板 阅读全文

posted @ 2018-09-12 12:59 Iowa_Battleship 阅读(115) 评论(0) 推荐(0) 编辑

BZOJ2330或洛谷3275 [SCOI2011]糖果
摘要:"BZOJ原题链接" "洛谷原题链接" 很明显的差分约束,但数据范围较大,朴素$SPFA$判正环求解会$T$(理论上如此,但我看到有挺多人用朴素的还跑得挺快。。),所以需要优化。 我们所建立的有向图中所有边的权值只有$0$或$1$,而且若图中有环,那么环上所有边的权值必须为$0$,否则无解。 所以我 阅读全文

posted @ 2018-09-12 11:20 Iowa_Battleship 阅读(165) 评论(0) 推荐(0) 编辑

POJ1236或洛谷2746或洛谷2812 Network of Schools
摘要:"POJ原题链接" "洛谷2746原题链接" "洛谷2812(加强版)原题链接" 显然在强连通分量里的所有学校都能通过网络得到软件,所以我们可以用$tarjan$求出强连通分量并缩点,统计缩点后每个点的入度和出度。 对于第一问,因为所有零入度的点无法通过网络得到软件,所以答案就是零入度的点的数量。 阅读全文

posted @ 2018-09-11 20:07 Iowa_Battleship 阅读(99) 评论(0) 推荐(0) 编辑

导航