题目1 : 同构时间限制:2000ms单点时限:1000ms内存限制:256MB描述给定2个树A和B,保证A的节点个数>=B的节点个数。现在你需要对树A的边进行二染色。一个好的染色方案,指不存在一个树A中的连通块,同时满足以下2个条件1. 其中只有同色的边2. 和B同构。两个树同构是指,存在一个一一...
分类:
其他好文 时间:
2015-04-10 17:10:55
阅读次数:
154
题目大意:给定一棵树,求本质不同的独立集个数对1000000007取模后的值
首先独立集个数应该都会求吧- -
令f[x][0]为x这个点不选的独立集个数
f[x][1]为x这个点选的独立集个数
那么有f[x][0]=Σf[son[x]][0]+f[son[x]][1]
f[x][1]=Σf[son[x]][0]
但是现在要求本质不同
说到本质不同我们很容易想到群论...
分类:
其他好文 时间:
2015-01-28 09:57:08
阅读次数:
251
题目大意:给定一棵树和两组权值,求第一组权值最少改变多少个之后这棵树经过重标号之后与第二组权值相同
这个题做法很神- -
首先和3162一样的处理方式 我们先找到这棵树的重心作为根 如果重心有两个就新建一个根连向这两个重心
令f[x][y]表示x所在子树的第一组权值和y所在子树的第二组权值匹配的最小花销
转移的必要条件是x所在的子树与y所在的子树同构且x与y深度相同
为了保证无后效性,x...
分类:
其他好文 时间:
2015-01-28 09:47:34
阅读次数:
235
无根树同构有两种方法,一种是确定其中一棵树,另一棵树枚举根节点。一种是,利用拓扑排序,先确定其中一棵树。另一棵树,若拓扑后剩两个节点,则枚举这两个节点为根结点,否则,只需做一次。注意,无根树节点入度应为1。
1 #include 2 #include 3 using namespace std;.....
分类:
其他好文 时间:
2014-05-31 18:33:41
阅读次数:
263
有根树同构。参考论文《hash在。。。。》 1 #include 2 #include 3
#include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 10 const
int leaf_hash=2099;...
分类:
其他好文 时间:
2014-05-31 18:21:24
阅读次数:
187