好久没写过这么长的代码了,题解东哥讲了那么多,并查集优化还是很厉害的,赶快做做前几天碰到的相似的题。 ...
分类:
其他好文 时间:
2018-09-20 21:14:29
阅读次数:
155
刚做了两道tarjan缩点的题,新学的算法总结一下。 推荐题:(难度单调递增) [HAOI2006]受欢迎的牛 [USACO5.3]校园网Network of Schools 间谍网络 [APIO2009]抢掠计划 这里不教tarjan,要学的找别的博客吧。 总结:tarjan 简单来说 算法过程 ...
分类:
其他好文 时间:
2018-09-17 20:32:11
阅读次数:
192
嘟嘟嘟 建图还是很明显的。 接着分两种情况: 1.图中不存在环:那么只要收买那些入度为0的点。如果这些点有的不能收买。就不能控制所有间谍。 2.图中存在环,那么对于这些在环中的点,我们只要收买数额最少的间谍。 于是我们用tarjan缩点:这样把第二种情况就变成了第一种情况。 所以大体流程是:用tar ...
分类:
其他好文 时间:
2018-09-17 19:36:48
阅读次数:
188
"题目传送门" 这个题其实就是tarjan缩点的板子题对吧....至少我是这么想的 首先这是个有向图,对于一个有向图,我们肯定要考虑环的存在与否,恰好这个题又是让我们找出最少的点,使得这几个点能够走遍全图 那么,显然,对于每一个强连通分量,我们看做一个点即可(因为强连通分量中每两个点之间一定能从一个 ...
分类:
其他好文 时间:
2018-09-14 20:33:46
阅读次数:
172
"题目链接" Solution 大概是个裸题. 可以考虑到,如果原图是一个有向无环图,那么其最大半联通子图就是最长的一条路. 于是直接 $Tarjan$ 缩完点之后跑拓扑序 DP就好了. 同时由于是拓扑序DP,要去掉所有的重边. Code cpp include define ll long lon ...
分类:
编程语言 时间:
2018-09-07 20:44:38
阅读次数:
210
http://codeforces.com/problemset/problem/999/E 题意 有向图 给你n个点,m条边,以及一个初始点s,问你至少还需要增加多少条边,使得初始点s与剩下其他的所有点都连通。 第一个想法自然是通过上标记的方法,对每一个入度为0的点跑dfs。 但是问题在于剩下没有 ...
分类:
其他好文 时间:
2018-09-06 00:10:03
阅读次数:
152
"传送门" 考虑tarjan缩点,形成一个DAG。若要控制所有间谍,则从所有可以被控制的点出发,可以遍历整个图,否则就是存在无法控制。为了控制所有人,我们需要把入度为0的点的权值相加作为答案。 cpp include include include define MAXN 3005 define M ...
分类:
其他好文 时间:
2018-08-30 11:00:34
阅读次数:
136
可以看出Tarjan缩点,但对于第一问,我竟然想到状压DP😢 对于第二问,我想的是怎么添边成环😢 对于第一问,统计入度为0的点即可 对于第二问,统计出度为0的点,与第一问取个max即可 因为要把所有点的入度出度都变成大于0的...... 还有就是Tarjan缩点的写法,要用do while... ...
分类:
其他好文 时间:
2018-08-19 19:09:18
阅读次数:
154
先象征性地描述一下问题:一组(或者一个)东西有且仅有两种选择,要么选这个,要么选那个,还有一堆的约束条件 图论问题,当然是建边跑图喽 给出模型: 题目POJ3683 然后说一下这个题的意思: 如果某两个婚礼进行仪式的时间有重合 那么就存在了矛盾关系,通过这些关系连边 Tarjan缩点重新建图(这里建 ...
分类:
其他好文 时间:
2018-08-11 01:33:51
阅读次数:
195
【题目描述】 现在假设总共有N个营员(2<=N<=200),每个营员的编号为1~N。LHC给每个人发了一张调查表,让每个营员填上自己愿意让哪些人到他那儿拷贝资料。当然,如果A愿意把资料拷贝给B,而B又愿意把资料拷贝给C,则一旦A获得了资料,则B,C都会获得资料。求最小需要刻录多少张光盘。 【题目链接 ...
分类:
其他好文 时间:
2018-08-09 21:21:49
阅读次数:
176