题意:
一些隧道组成矿井 现在要修建尽量少的逃生通道 使得无论哪里发生事故 所有人均能逃出 求方案数
思路:
这道题比较容易联想到割点 因为只有这种点出事矿井才会不连通 那么首先就找出所有割点
分析最少要建几个逃生通道 那当然是每个连通块各一个 因此需要把求出连通块顶点数之积
最后考虑特殊情况 没有割点 那么随便两个地方建就好了 不能建一个 万一就那里出事了呢...
分类:
其他好文 时间:
2014-08-29 20:06:58
阅读次数:
272
题目地址:http://codeforces.com/contest/461/problem/B
题目大意:给一棵树,每个点为白色或黑色,切断一些边,使得每个连通块有且仅有一个黑点,问划分方案数。
算法讨论:TreeDP。f[x][0..1]表示x所在连通块有0/1个黑点。设y为x的儿子,则DP方程为f[x][1]=f[x][1]*f[y][0]+f[x][1]*f[y][1]+f[x][0]...
分类:
移动开发 时间:
2014-08-27 09:25:57
阅读次数:
287
1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。
2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。
3.点连通度:最小割点集合中的顶点数。
4.割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图。
5.割边集合:如果有一个边集合,删除这个边集合以后,...
分类:
其他好文 时间:
2014-08-26 21:30:06
阅读次数:
612
奶牛选举搜索题意:在 5*5 的矩阵中找出规模为 7 的四连通块的个数。初步解法:枚举第一个被取的格子是哪个。对于每个格子,若其上下左右四个格子已经有被取过的格子,就枚举其取或不取;否则不取当前格子。但是很明显是错的,因为在初始格子的周围添加一个后,能够取的格子就会变多,但是由于是顺序枚举,就会漏掉...
分类:
其他好文 时间:
2014-08-26 00:20:15
阅读次数:
258
题目地址:POJ 1236
这个题的大意是求最少往多少点发送消息可以使任意一个点都能收到消息和最少增加多少条边可以使图为连通图。对于第一个问题,可以求入度为0的强连通块的块数,因为只有入度为0的强连通块是无法从外界接受信息的,而只要有一个入度的话,那整个连通块就都可以接收到信息。第二个问题则是求入度为0的强连通块与出度为0的强连通块的个数的最大值。
代码如下:
#include
#incl...
分类:
Web程序 时间:
2014-08-25 21:17:24
阅读次数:
287
缩点 很简单的啊... 就是将原来一个连通块变成一个点..可能你原本是这样的 A->B->C->A 缩点完成后 我们就把{A,B,C}用数字1来表示 如果还有D->E->D 那我们再讲{D,E}用2表示....最后的sum就是代表连通块总的个数然后 一般 缩点完成后 我们现在得到了n个连通块 我们要...
分类:
其他好文 时间:
2014-08-23 21:36:31
阅读次数:
244
就是看无向图有几个连通块,答案就是2n-num。范围很小,就用矩阵来存图减少代码量。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;...
分类:
其他好文 时间:
2014-08-19 04:54:43
阅读次数:
243
题意 图中每个矩形'#'连通块代表一艘船 若一艘船与另一艘有边相邻或有角相邻 那么认为这两艘船相撞 若图中有船相撞 输出bad 否则输出图中有多少艘船
可以把图的周围全包上一圈'.' 遍历图中每个点 可知当图中存在一下四种结构中的一个时 必有船相撞 输出并退出循环 否则则dfs这个点 若图中不存在这些结构 就可以输出连通块数量即轮船数了...
分类:
其他好文 时间:
2014-08-13 01:17:55
阅读次数:
289
我觉得 这题 是纯粹的 并查集 可以算成 入门题吧问你有几章桌子 就是问你有几个 连通块嘛 一个道理 touch me这题 我采用了下 father[x]开始 初始化为-1 1 #include 2 #include 3 using namespace std; 4 5 const in...
分类:
其他好文 时间:
2014-08-13 00:50:14
阅读次数:
176
这题要的是我们求出我们需要增加多少条边才能让整个图变成一整个双连通块。可以进行对图缩点。缩点后,新图是一棵树,树的边就是原无向图的桥。现在问题转化为:在树中至少添加多少条边能使图变为双连通图。结论:添加边数=(树中度为1的节点数+1)/2 1 include 2 #include 3 #incl.....
分类:
其他好文 时间:
2014-08-10 23:48:10
阅读次数:
297