假定1为本树的根,对于任意的一个联通子图,可以认为是从树上一个点向子树的儿子节点延伸产生的树。 从而考虑dp:$f(x,j)$ 表示从x点向子树延伸而出异或和为j的连通子图的个数考虑从 $f(p,j)$ 转移到 $f(x,j)$用类似背包的方法:$h(i,j)$ 表示考虑前i个儿子从点x向下延伸产生 ...
分类:
其他好文 时间:
2016-10-06 17:02:33
阅读次数:
156
主要借助这道比较裸的题来讲一下tarjan这种算法 tarjan是一种求解有向图强连通分量的线性时间的算法。(用dfs来实现) 如果两个顶点可以相互通达,则称两个顶点强连通。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量。 在上面这张有向图中1,2,3, ...
分类:
其他好文 时间:
2016-09-16 21:19:50
阅读次数:
171
有向图强连通分量的Tarjan算法 [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connecte ...
分类:
编程语言 时间:
2016-09-10 20:39:36
阅读次数:
188
惨烈啊。。。int son[x]=>bool son[x]一直调不出来我也是醉了。!!!最新错法。。。 缩点后有重边!!! 就是缩点之后找最长路然后找有多少条最长路树形dp一下。 #include<cstdio> #include<cstring> #include<cctype> #include ...
分类:
其他好文 时间:
2016-09-09 22:28:42
阅读次数:
174
ACM模版点双连通分支去掉桥,其余的连通分支就是边双连通分支了。一个有桥的连通图要变成边双连通图的话,把双连通子图 收缩为一个点,形成一颗树。需要加的边为(leaf+1)/2 (leaf 为叶子结点个数)
参考题目链接:
POJ 3177 Redundant Paths
给定一个连通的无向图 G,至少要添加几条边,才能使其变为双连通图。const int MAXN = 5010; // 点...
分类:
其他好文 时间:
2016-07-19 11:07:16
阅读次数:
194
http://codeforces.com/problemset/problem/566/F 题目大意: 有n个点,点上有值a[i], 任意两点(i, j)有无向边相连当且仅当 (a[i] mod a[j])==0||(a[j] mod a[i])==0 问这幅图中的最大连通子图是多少。 思路:直接 ...
分类:
其他好文 时间:
2016-07-13 23:02:52
阅读次数:
150
如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。 下图中,子图{1,2,3,4}为一个强连通分量, ...
分类:
移动开发 时间:
2016-07-11 10:38:04
阅读次数:
255
2016-07-02 大概意思就是这样了,代码里我貌似没有计算最后一步,但是原理都是一样的、、、、、R1有5个点P1有四个点,他们共同的点是4个,那就是共同点4*4/(R1的5个点*P1的四个点就是0.8啦) 我这个代码又一个投机取巧的地方,就是你算两个图的最大共有连通子图的时候,不单单要两个图都有 ...
分类:
编程语言 时间:
2016-07-02 21:25:38
阅读次数:
217
图的生成树是它的一棵含有其所有顶点的无环连通子图。一幅加权无向图的最小生成树是它的一棵权值最小的生成树。如下图 树的两个重要性质: 用一条边连接树中的任意两个顶点都会产生一个新的环 从树中删除一条边将会得到两棵独立的树。 图的一种切分是将图的所有顶点分为两个非空且不重复的两个集合。横切边是一条连接两 ...
分类:
其他好文 时间:
2016-06-10 14:57:29
阅读次数:
136
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3367 求一个无向图上权值最大的伪森林。 伪森林:一个图的连通子图,当且仅当这个子图有且仅有一个环。 既然是一个图的连通子图,那这个图本身就是连通的就没有疑问了,我们就可以贪心地找尽可能大的边,把他们并在 ...
分类:
其他好文 时间:
2016-05-31 12:16:09
阅读次数:
215