POJ 3352 Road Construction
链接:http://poj.org/problem?id=3352
题意:给定一张连通的无向图,无重边。问最少加入多少条边之后,使得原图之中的任意两点之间都有两条以上的“边不重复”的路径。
思路:首先可以通过求割点的方式对该图进行一次dfs。dfs之后,所有位于同一个边-双连通分量的点的low值相同。这样就能够将一个边-...
分类:
其他好文 时间:
2014-09-05 16:10:11
阅读次数:
158
题意:在一张图中给出q个加边操作,问你每次操作之后图中割边的个数。点数1e5询问1000思路:这道题的做法是先对图进行缩点,然后变成一颗树,每次添加新边若是边的两个端点属于不同的分支则一定会形成一个环,这时暴力lca标记所有换上的边有割边变为不是割边。每次统计就可以了。理论上说,每次给V字形的图复杂...
分类:
Web程序 时间:
2014-09-01 19:28:13
阅读次数:
319
POJ 2942 Knights of the Round Table
链接:http://poj.org/problem?id=2942
题意:亚瑟王要在圆桌上召开骑士会议,为了不引发骑士之间的冲突,并且能够让会议的议题有令人满意的结果,每次开会前都必须对出席会议的骑士有如下要求:
1、 相互憎恨的两个骑士不能坐在直接相邻的2个位置;
2、 出席会议的骑士数必须是奇数,这是为了...
分类:
其他好文 时间:
2014-09-01 17:46:23
阅读次数:
268
UVA 10972 - RevolC FaeLoN
题目链接
题意:给定一个无向图(不一定全连通),现在把边定向,问还要添加几条边使得图强连通
思路:先求出边-双连通分量,每个连通分量都能定向,然后缩点,转化为欧拉回路,如果每个点度数都是大于等于2的偶数就是回路,也就是强连通了,所以计算度数为0和1的个数,一条边能增加两个度数,所以答案为所以只要再添加上(a + 1) / 2 +...
分类:
其他好文 时间:
2014-09-01 12:37:03
阅读次数:
199
UVA 610 - Street Directions
题目链接
题意:给定一个无向图,要求把尽可能多的边定向,使得形成一个强连通图,输出定向后的图,不能定向的边就变成两条有向边
思路:找出割边,只有割边是需要定成两条的,其他的双连通分量中,边肯定都可以定向,然后在dfs不经过割边打印路径,最后在打印出割边(拆成两条)
代码:
#include
#include
...
分类:
其他好文 时间:
2014-09-01 00:27:52
阅读次数:
274
题目链接:点击打开链接
题意:
给定n个点m条边的无向图
问图中是否存在 有且仅有一个简单环和一些树,且这些树的root都在这个简单环上。
瞎写了个点双。。==
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define N 105
#define M...
分类:
其他好文 时间:
2014-08-31 22:57:02
阅读次数:
256
UVA 10765 - Doves and bombs
题目链接
题意:给定一个无向图,每个点的鸽子值为删去这个点后会有几个连通块,问鸽子值前m大的点的鸽子值,如果相同,按编号排
思路:就裸的双连通分量,在每个连通分量如果是割顶的点就加一,最后如果答案为0的点,答案应该是1
代码:
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-08-31 11:58:51
阅读次数:
186
题意:
一幅无向图 将尽量多的无向边定向成有向边 使得图强连通 无向图保证是连通的且没有重边
思路:
桥必须是双向的 因此先求边双连通分量 并将桥保存在ans中
每个双连通分量内的边一定都可以变成有向边(毕竟是圈组成的图) 边的定向方式分两种:
1、对于树枝边u->v 如果low[v]>dfn[u]说明v回不到u上面去 所以ans应该是v->u的边 否则是u->v
2、...
分类:
其他好文 时间:
2014-08-31 11:56:31
阅读次数:
213
题意:
寻找图中从一条边到另一条边的路径上必须经过的点的个数
思路:
首先必经过的一定是割点 因此可以先做点双连通然后缩点 缩完点后形成了树 而且树上的路径是满足“非割点-割点-非割点-割点-…”这样的模式的 路径u->v只需要求出他们的lca 则答案可以通过(dis[u]+dis[v]-dis[lca]*2)/2算出
注意:
这题缩点是通过边来进行的 因为这样可以使每条边都...
分类:
其他好文 时间:
2014-08-30 15:12:49
阅读次数:
356
UVA 1108 - Mining Your Own Business
题目链接
题意:给定一个连通图,设置一个些安全点,使得其他任意一些节点崩塌后,其他点都能到一个安全点,问安全点最小数量和情况数
思路:
#include
#include
#include
#include
#include
using namespace std;
const int N ...
分类:
其他好文 时间:
2014-08-29 21:26:28
阅读次数:
219