思路很乱,写个博客理一理。 缩点 + dp。 首先发现把一个环上的边反向是意义不大的,这样子不但不好算,而且相当于浪费了一次反向的机会。反正一个强连通分量里的点绕一遍都可以走到,所以我们缩点之后把一个强连通分量放在一起处理。 设$st$表示缩点之后$1$所在的点,设$f_{x}$表示从$st$走到$ ...
分类:
其他好文 时间:
2018-09-11 01:10:00
阅读次数:
218
最近几天写了一些分层图的题目,来总结一下 分层图有一个很重要的性质: 上一层不能到达下一层,但下一层能到达上一层 分层图常常结合最短路,所以叫分层图最短路,当然,也结合缩点之类的 ...
分类:
其他好文 时间:
2018-09-08 19:23:04
阅读次数:
137
题目背景 缩点+DP 题目描述 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。 输入输出格式 输入格式: 第一行,n,m 第二行,n个整数,依次代表点权 第三至m+2行 ...
分类:
其他好文 时间:
2018-09-07 23:16:47
阅读次数:
190
POJ 1236 :http://poj.org/problem?id=1236 参考:https://www.cnblogs.com/TnT2333333/p/6875680.html 题意: 有好多学校,每个学校可以给其他特定的学校发送文件。第一个问题是最少要给几个学校发文件,可以使得全部的学校 ...
分类:
Web程序 时间:
2018-09-07 21:10:50
阅读次数:
175
"题目链接" Solution 大概是个裸题. 可以考虑到,如果原图是一个有向无环图,那么其最大半联通子图就是最长的一条路. 于是直接 $Tarjan$ 缩完点之后跑拓扑序 DP就好了. 同时由于是拓扑序DP,要去掉所有的重边. Code cpp include define ll long lon ...
分类:
编程语言 时间:
2018-09-07 20:44:38
阅读次数:
210
基环树森林,然而我比较菜,直接tarjan找环。 发现缩点之后变成了DAG,每一个点往下走一定会走到一个环,缩点之后搜一遍看看会走到哪个环以及那个环的编号是多少,答案就是环的$siz$$ + $要走的路程。 比较垃圾的我忘记了判重边WA了好多发…… 时间复杂度$O(n)$。 Code: #inclu ...
分类:
其他好文 时间:
2018-09-06 02:31:26
阅读次数:
168
http://codeforces.com/problemset/problem/999/E 题意 有向图 给你n个点,m条边,以及一个初始点s,问你至少还需要增加多少条边,使得初始点s与剩下其他的所有点都连通。 第一个想法自然是通过上标记的方法,对每一个入度为0的点跑dfs。 但是问题在于剩下没有 ...
分类:
其他好文 时间:
2018-09-06 00:10:03
阅读次数:
152
Tarjan算法 应用: 有向图的强连通分量 无向图割点和桥 双连通分量 接下来主要谈论前面两者的应用(~~主要是第三种还没学会~~) 算法简要介绍 我们需要先理解一下知识:搜索树 有向图的搜索树的4种边,如下图所示: tree edge:在dfs搜索u的过程中,第一次搜索v,则(u,v)是树边 f ...
分类:
其他好文 时间:
2018-09-03 00:06:11
阅读次数:
213
后天就要开学了,这应该是这个暑假的最后一次总结了吧。 说实话,忙忙碌碌的一个暑假,学到东西了么?学到了。学了多少?还可以吧hhh。 想起来去年的这个时候,我还抱着紫书在那里看爆搜,啥也看不懂,现在呢,怎么说也懂得了一些吧。 路就是这样,你敢走,就有的走。 狭路相逢,勇者胜。 UVA 1645 题意: ...
分类:
其他好文 时间:
2018-09-02 02:12:02
阅读次数:
188
传送门 首先肯定要跑一个最小割也就是最大流 然后我们把残量网络tarjan,用所有没有满流的边来缩点 一条边如果没有满流,那它就不可能被割了 一条边如果所属的两个强联通分量不同,它就可以被割 一条边如果所属的两个点一个与源点同块,一个与汇点同块,那么它就可以一定在最小割集合中 为啥我也不会证,直接搬 ...
分类:
其他好文 时间:
2018-08-31 14:47:08
阅读次数:
187