题意:在一张图中给出q个加边操作,问你每次操作之后图中割边的个数。点数1e5询问1000思路:这道题的做法是先对图进行缩点,然后变成一颗树,每次添加新边若是边的两个端点属于不同的分支则一定会形成一个环,这时暴力lca标记所有换上的边有割边变为不是割边。每次统计就可以了。理论上说,每次给V字形的图复杂...
分类:
Web程序 时间:
2014-09-01 19:28:13
阅读次数:
319
UVA 10972 - RevolC FaeLoN
题目链接
题意:给定一个无向图(不一定全连通),现在把边定向,问还要添加几条边使得图强连通
思路:先求出边-双连通分量,每个连通分量都能定向,然后缩点,转化为欧拉回路,如果每个点度数都是大于等于2的偶数就是回路,也就是强连通了,所以计算度数为0和1的个数,一条边能增加两个度数,所以答案为所以只要再添加上(a + 1) / 2 +...
分类:
其他好文 时间:
2014-09-01 12:37:03
阅读次数:
199
UVA 11504 - Dominos
题目链接
题意:给定一个多米诺骨牌的有向图,为最多要推几个才能全倒
思路:强连通分量,缩点后找出度数为0的点就是答案
代码:
#include
#include
#include
#include
#include
using namespace std;
const int N = 100005;
vector ...
分类:
其他好文 时间:
2014-08-31 23:00:22
阅读次数:
273
题目链接:点击打开链接
题意:
给定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
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1093分析:首先肯定是先把强联通全部缩成一个点,然后成了一个DAG下面要知道一点:原图的最大半联通子图实际是上是新DAG图的一个最长链然后就像拓扑排序一样(不过这是以出度为0的点优先,拓扑...
分类:
移动开发 时间:
2014-08-31 13:13:01
阅读次数:
251
题意:
寻找图中从一条边到另一条边的路径上必须经过的点的个数
思路:
首先必经过的一定是割点 因此可以先做点双连通然后缩点 缩完点后形成了树 而且树上的路径是满足“非割点-割点-非割点-割点-…”这样的模式的 路径u->v只需要求出他们的lca 则答案可以通过(dis[u]+dis[v]-dis[lca]*2)/2算出
注意:
这题缩点是通过边来进行的 因为这样可以使每条边都...
分类:
其他好文 时间:
2014-08-30 15:12:49
阅读次数:
356
UVA 11324 - The Largest Clique
题目链接
题意:给定一个有向图,要求找一个集合,使得集合内任意两点(u, v)要么u能到v,要么v能到u,问最大能选几个点
思路:强连通分量,构造出scc之后,缩点,每个点的权值是集合点个数,然后做一遍dag找出最大权值路径即可
代码:
#include
#include
#include
#incl...
分类:
其他好文 时间:
2014-08-30 13:55:39
阅读次数:
196
UVA 12167 - Proving Equivalences
题目链接
题意:给定一些已经存在的等价性证明,要求全部等价,需要在多最少几次证明
思路:先求出强连通分量,然后进行缩点,在缩点后的图上统计入度和出度为0结点的最大值,就是需要加的边数,注意如果整个图已经是强连通,就直接是答案
代码:
#include
#include
#include
#incl...
分类:
其他好文 时间:
2014-08-29 22:45:40
阅读次数:
279
这个专题充分暴露了不认真思考的缺点,总是感觉差不多就下手。
对于A题目,以为是强连通分量缩点。但实际上是求桥。
并考虑:1.重边 2.权重为0则初始值不能赋值为0,当选取权重为0的边答案为1 3.没有答案。
对于B题目,起初想得很复杂,以为是动态规划,一直在思考转移方程。但其实DFS就可以,但漏掉了形成正方形的另一个条件,底边平行。
对于C题目,这里又出现了漏洞(直接DFS不用考虑这些)...
分类:
其他好文 时间:
2014-08-29 09:29:27
阅读次数:
220
题目大意:在一个有向图中,每两点间通信需要一定的时间,但同一个强连通分量里传递信息不用时间,给两点u,v求他们最小的通信时间。解题过程:1.首先把强连通分量缩点,然后遍历每一条边来更新两个强联通分量之间的距离。。2.直接Floyd会超时,应该用dijstra或者spfa做k次最短路。犯的错误:前向星...
分类:
其他好文 时间:
2014-08-27 20:10:38
阅读次数:
211