刘汝佳书上都给出了完整的代码
在这里理一下思路:
由题意知肯定存在一个或者多个双连通分量;
如果某一个双连通分量有割顶,那太平井一定不能打在割顶上。而是选择割顶之外的任意一个点;
如果没有割顶,则要在该双连通分量上打两个井
至于打井方案,见代码
#include
#include
#include
#include
#include
usi...
分类:
其他好文 时间:
2015-03-14 15:20:21
阅读次数:
158
亚瑟王要在圆桌上召开骑士会议,为了不引发骑士之间的冲突, 并且能够让会议的议题有令人满意的结果,每次开会前都必须对出席会议的骑士有如下要求: 1、 相互憎恨的两个骑士不能坐在直接相邻的2个位置; 2、 出席会议的骑士数必须是奇数,这是为了让投票表决议题时都能有结果。...
分类:
其他好文 时间:
2015-03-14 12:29:57
阅读次数:
197
题目地址:HDU 2242
先用双连通分量缩点,然后形成一棵树,然后在树上做树形DP,求出每个点的子树和。然后找最小值即可。需要注意一下重边的问题,第一次返回父节点时可以忽略,因为这是反向边,然后之后再返回的时候就不是反向边了。不能忽略了。
代码如下:
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2015-03-12 09:50:38
阅读次数:
173
题目地址:POJ 3177
找出各个双连通分量度数为1的点,然后作为叶子节点,那么ans=(叶子结点数+1)/2。需要注意的是有重边。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define LL l...
分类:
其他好文 时间:
2015-03-11 19:46:45
阅读次数:
136
给出一个无向连通图,添加若干条边,每添加一条边后输出图中剩余的桥的数量。...
分类:
Web程序 时间:
2015-03-07 18:44:17
阅读次数:
230
给出一张无向图,问至少添加多少条边可以使得该图变成边双连通图。...
分类:
其他好文 时间:
2015-03-04 16:59:54
阅读次数:
118
大白书 P314#include #include #include #include #include #include #include using namespace std;typedef long long LL;struct Edge{int u,v; };const int maxn ...
分类:
其他好文 时间:
2015-03-02 18:18:07
阅读次数:
102
反建图,计算强连通分量,将每个分量看成一个点,缩点后的图是一个DAG,如果是一棵树,则根代表的连通分量的大小就是答案,否则答案为0.收获: 图的东西如果不好解决,可以尝试缩点(有向图将每个强连通分量看成一个点,无向图将每个双连通分量看成一个点),缩点之后图就变成DAG或无向无环连通图,原本没有的一....
分类:
其他好文 时间:
2015-02-25 23:35:22
阅读次数:
214
分析:我们对于那些相互不憎恨的人连边,将每次参加会议的所有人(不一定是全部人,只需人数>=3且为奇数)看做一个点双联通分量,那么每个点都至少有两个点与他相邻。即需要保证双联通分量中存在奇圈。至于如何判奇圈,这里有一个性质:一个图是二分图当且仅当图中不存在奇圈。至于如何判断一个图是否是二分图,可以采用...
分类:
其他好文 时间:
2015-02-13 00:09:20
阅读次数:
212
传送门:Caocao's Bridges题意:n个岛,曹操在一些岛之间建了一些桥,每个桥上有一些士兵把守,周瑜只有一个炸弹只能炸掉一个桥,并能使一些岛被孤立出来,炸弹需要士兵带过去,士兵的数量不能小于目标桥的守卫,求出最少要派出多少士兵。分析:题目很明显要找出边权最小的桥,但本题有几个坑:1)图若不...
分类:
其他好文 时间:
2015-02-08 23:09:54
阅读次数:
199