"传送门" 考虑tarjan缩点,形成一个DAG。若要控制所有间谍,则从所有可以被控制的点出发,可以遍历整个图,否则就是存在无法控制。为了控制所有人,我们需要把入度为0的点的权值相加作为答案。 cpp include include include define MAXN 3005 define M ...
分类:
其他好文 时间:
2018-08-30 11:00:34
阅读次数:
136
我真的服了 我考试的时候这道题题都是读错了的 交了个挖挖机结果还狗了20分.. 这道题是一道找规律的题 看完题很显然能够发现我们可以将相同颜色的连通块缩点 因为同一个联通块的可以一次操作全部变成另外一种颜色 所以就缩点就好了.. 对于缩点后的一条链 每次我们可以将一个点变色 那么和他相邻的点就和他颜 ...
分类:
其他好文 时间:
2018-08-26 22:04:10
阅读次数:
141
不爽。 为什么tarjan能爆栈啊 十分显然的缩点,给缩点之后的点连上权值为后一个点集权值的有向边,然后spfa跑最长路。 注意一开始$dis_{st}$应该等于$st$这个集合的权值。 时间复杂度$O(能过)$。 非递归版的tarjan可以学习一下。 Code: #include <cstdio> ...
最小树形图问题啊 最小树形图是撒哩,就是给你一个有向图,确定一个根,要你到达所有点,那棵最短路径树的总边权 做这个用的是朱(jv)刘(lao)算法。 首先假如有多个联通块就无解啦 对应每个点(除了根),找到一条连向它的最短的边,假如没有环,那这个就是答案嘛 否则就找环,然后缩点,对于一个环,假如要从 ...
分类:
其他好文 时间:
2018-08-23 21:03:49
阅读次数:
146
可以看出Tarjan缩点,但对于第一问,我竟然想到状压DP😢 对于第二问,我想的是怎么添边成环😢 对于第一问,统计入度为0的点即可 对于第二问,统计出度为0的点,与第一问取个max即可 因为要把所有点的入度出度都变成大于0的...... 还有就是Tarjan缩点的写法,要用do while... ...
分类:
其他好文 时间:
2018-08-19 19:09:18
阅读次数:
154
并查集缩点这个trick感觉明明用得很广泛,为什么以前都不知道…… 先把$m$条线路从小到大排个序,这样可以保证之前合并出来的一定是最小的,大的代价不会把小的覆盖掉。 维护两个并查集,一个用来缩点,另一个用来维护生成树的相关信息 直接把每一条树链合并到lca处,最后再把两个lca合并,因为最后要把两 ...
分类:
其他好文 时间:
2018-08-19 17:10:41
阅读次数:
191
题意:一张有向图,每条边上都有wi个蘑菇,第i次经过这条边能够采到w-(i-1)*i/2个蘑菇,直到它为0。问最多能在这张图上采多少个蘑菇。 分析:在一个强连通分量内,边可以无限次地走直到该连通块内蘑菇被采完为止,因此每个强连通分量内的结果是确定的。 设一条边权值为w,最大走过次数为t,解一元二次方 ...
分类:
其他好文 时间:
2018-08-17 20:08:46
阅读次数:
138
<题目链接> 题目大意: 有N(N<=10000)头牛,每头牛都想成为most poluler的牛,给出M(M<=50000)个关系,如(1,2)代表1欢迎2,关系可以传递,但是不可以相互,即1欢迎2不代表2欢迎1,但是如果2也欢迎3那么1也欢迎3. 给出N,M和M个欢迎关系,求被所有牛都欢迎的牛的 ...
分类:
其他好文 时间:
2018-08-16 21:03:34
阅读次数:
195
不会lct,所以只能树剖乱搞 一般这种删边的题都是离线倒着做,变成加边 他要求的结果其实就是缩点以后两点间的距离。 然后先根据最后剩下的边随便做出一个生成树,然后假装把剩下的边当成加边操作以后处理 这样的话,就可以做树剖来维护现在的两点间距离。 然后考虑加边,其实就是加了一条边然后某一处成环了,缩成 ...
分类:
其他好文 时间:
2018-08-16 13:42:39
阅读次数:
139
题意:一个无向连通图,点有点权,支持单点修改和查询,查询$(x,y)$是找出一条$x$到$y$的简单路径使得路径点权最小值最小,输出这个最小值 码农题...而且细节很多... 先找边双连通分量缩点,对于每个边双,新建一个节点和边双中的每个点连边,不属于任何边双的边就直接连,这样可以建出一棵树,然后就 ...
分类:
其他好文 时间:
2018-08-15 12:04:32
阅读次数:
198