题解:
首先缩个点是必然,然后随便想想就知道缩点后需要最后是一条链,
也就是——
缩点后求拓扑图最长路以及方案数。
呃,去重的部分我重标号排了个序水过。
代码:
#include
#include
#include
#include
#define N 101000
#define M 1001000
#define inf 0x3f3f3f3f
using n...
分类:
编程语言 时间:
2015-01-11 14:53:41
阅读次数:
253
题目大意:定义半连通图:图中任意两点之间可以单向到达。求一个图的最大半连通子图,和这个图最大半连通子图的个数。
思路:半连通图并不是一定要没有环。。这题意让我理解的。。
其实想法什么的不难,想明白了也不难写。因为要保证半连通,所以要先处理出一个图的联通状况。先用Tarjan缩点得到DAG,在这个DAG上找到最长链的长度就是第一问的答案。第二问可以先找到所有f值等于答案的点,在这些点上反...
分类:
移动开发 时间:
2015-01-11 11:02:20
阅读次数:
213
题目链接:http://poj.org/problem?id=2378题意:给一个树状图,有n个点。求出,去掉哪个点,使得剩下的每个连通子图中点的数量不超过n/2。分析:num[u]表示以u为根节点的子树的总节点树,判断下与u连接的儿子v代表的子树总节点num[v]和u的父亲代表的子树总节点n-nu...
分类:
其他好文 时间:
2015-01-06 00:45:55
阅读次数:
163
求对于给定一个连通图,加多少条边可以变成边双连通图。
一个有桥的连通图要变成边双连通图的话,把双连通子图收缩为一个点,形成一颗树。需要加的边为(leaf+1)/2 (leaf为叶子结点个数)。
对于此题,有重边但重边不加入计算。
重边的话,要么在开始去掉,要么用桥来计算入度。
因为桥不属于任何一个边双连通分支,其余的边和每个顶点都属于且只属于一个边双连通分支。对于重边而言,只有一对...
分类:
移动开发 时间:
2014-12-22 21:23:30
阅读次数:
215
描述: 一个连通图的生成树是指一个极小连通子图,它含有图中的全部顶点,但只有足以构成一棵树的 n-1 条边。我们把构造连通网的最小代价生成树成为最小生成树。而Prim算法就是构造最小生成树的一种算法。定义: 假设N = (P,{E})是连通网,TE是N上最小生成树中边的集合。算法从U = {U0.....
分类:
编程语言 时间:
2014-12-22 14:11:52
阅读次数:
258
最小生成树在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。例如,对于如上图G4所示的连通网可以有多棵权值总和不相同的生成树。克鲁斯卡尔算法介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法...
分类:
编程语言 时间:
2014-12-05 21:09:16
阅读次数:
348
今天才会2-sat,是不是没有救了...Anna最近在学sat2...真是心有灵犀啊...参考链接: http://wenku.baidu.com/view/afd6c436a32d7375a41780f2.html基本方法: 1.构图 2.求图的极大强连通子图 3.把每个子...
分类:
其他好文 时间:
2014-11-26 01:16:32
阅读次数:
209
数据结构实验:连通分量个数Time Limit: 1000MS Memory limit: 65536K题目描述在无向图中,如果从顶点vi到顶点vj有路径,则称vi和vj连通。如果图中任意两个顶点之间都连通,则称该图为连通图,否则,称该图为非连通图,则其中的极大连通子图称为连通分量,这里所谓的极大是...
分类:
其他好文 时间:
2014-11-25 23:04:27
阅读次数:
251
http://www.lydsy.com/JudgeOnline/problem.php?id=1093两个条件综合起来加上求最大的节点数,那么很明显如果是环一定要缩点。然后再仔细思考下就是求dag的最长路的数目啦。。。然后wa了。。。看了题解。。。噗!第一次注意到缩点后会有重边QAQ。。。于是。。...
分类:
其他好文 时间:
2014-11-19 14:07:39
阅读次数:
229
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法求出...
分类:
编程语言 时间:
2014-11-15 23:19:56
阅读次数:
711