Going from u to v or from v to u?Time Limit: 2000MSMemory Limit: 65536KTotal Submissions: 15812Accepted: 4194DescriptionIn order to make their sons br...
分类:
编程语言 时间:
2015-08-29 16:40:51
阅读次数:
204
边双连通分量+缩点#include#include#include#include#includeusing namespace std;const int maxn = 10000 + 10; const int Maxn = 2 * 100000 + 10; int low[maxn];int ...
分类:
其他好文 时间:
2015-08-28 22:55:30
阅读次数:
249
题目链接: Hdu 3605 Escape题目描述: 有n个人要迁移到m个星球,每个星球有最大容量,每个人有喜欢的星球,问是否所有的人都能迁移成功?解题思路: 正常情况下建图,不会爆内存,但是TLE还是稳稳的。以前只遇到过网络流拆点建图,这个正好是缩点建图。吼吼吼~~~,建图的方式还是值得学习...
分类:
其他好文 时间:
2015-08-28 12:27:10
阅读次数:
162
poj 3352Road Construction&& poj 3177Redundant Paths给一个无向图,问最少需要添加多少条边,使它成为双连通图。做法:边双连通缩点,成为一棵树。若要使得任意一棵树,变成一个双连通图,那么至少增加的边数 =(度数为1的结点数 + 1 )/ 2 1 #in....
分类:
其他好文 时间:
2015-08-28 02:05:42
阅读次数:
248
给出一个无向图,你可以加一条边,使得加上边之后的图割边数量最少。方法:每个边双连通分量缩点,形成一个树,树上的每条边都是割边,割边数量为S1;接下来只要算出树上最长路径(树的直径)就可以了,最长路径两段连线,路径上的割边都不可能再成为割边了,记最长路径长度为S2;Ans=S1-S2;第一步可以用Ta...
分类:
其他好文 时间:
2015-08-27 22:41:42
阅读次数:
130
题意:给出人物关系图,要把一个通知告诉所有人,告诉每一个人有一个费用,现在想知道最小通知的人与费用。
思路:利用Tarjan算法,对原图进行缩点,然后找出入度为0 的点,那么这个人是必须要通知的,由于经过缩点,所以,如果这个点是缩点来的,那就枚举下这个点里的任一个点,找到最小的费用点。
#include
#include
#include...
分类:
其他好文 时间:
2015-08-27 13:22:17
阅读次数:
241
题意: 至少加几条边让整个图变成强连通。
思路:对于N个点的图,我们知道至少需要N条边才能使这个图强连通,现在我们先对题目的图计算一下强连通,对于已经在一个强连通的点,把他们看做为一个点,然后对新形成的图,计算出度,入度为0的最大值,因为,加一边,可以使入度,出度加一。
#include
#include
#include
#include...
分类:
其他好文 时间:
2015-08-27 11:05:38
阅读次数:
116
该题是一道经典的二分图匹配题目 。 同一列(行)上不能放两个船除非有冰山隔着。对于这种二维平面图,我们很容易想到将行和列分成两个集合,进行二分图匹配,当一个行坐标匹配到一个列坐标时,该格子可以放置船。那么为了使任意两个船都不在同一行或者同一列,除非有冰山,我们可以将每一行中一块连续的只能放置一个船的区域都设成一个编号,同样的按照列也这样处理,这样就相当于将行和列缩点了,接下来用最大流模板套一套就...
分类:
其他好文 时间:
2015-08-27 09:39:31
阅读次数:
194
先求出原图的最小生成树,然后枚举买哪些套餐,把一个套餐内的点相当与边权为0,直接用并查集缩点。正确性是基于一个贪心,在Kruskal中,对于没有进入最小生成树的边,排序在它前面的边不会减少。边比较多,用prim求最小生成树,效果比Kruskal好,枚举套餐的时候在用Kruskal。#includeu...
分类:
其他好文 时间:
2015-08-25 21:02:56
阅读次数:
193
传送门:BZOJ1051Tarjan算法求强联通分量,缩点,记录出度。
现学的Tarjan算法……++cnt写错了orz。
最近眼睛不舒服,做题好慢……代码上的小细节见下。#include
#include
#include
#include
#include
#include ...
分类:
其他好文 时间:
2015-08-21 23:32:10
阅读次数:
308