
树hash
文章平均质量分 53
make_it_for_good
这个作者很懒,什么都没留下…
展开
-
bzoj 3899 仙人掌树的同构 仙人掌 树hash
题意:给你一个仙人掌,然后把所有节点置换一下,求一共有多少置换满足置换后边不变。Q:如何让代码变长? A:将所有tab换成4个空格。 看到bz上我5k的代码我是懵逼的。。。把一个环变成一个红点连环上的其他边。这步用一个栈维护一下dfs到当前点的所有祖先就行了。 然后变成了一棵树,那么用正常树hash就行了。一个普通点,考虑他每种儿子的个数(hash值相同的算一种儿子),假设一种儿子有xx个,那原创 2016-09-13 20:14:16 · 439 阅读 · 0 评论 -
codeforces 690F2 Tree of Life (medium) 树hash
题意:一棵树,分别给出去掉第i个点之后剩下的图,点的顺序打乱,图的顺序打乱,求这棵树原来长什么样。n<=100n<=100一定有一个图是去掉一个叶子节点之后的,找到这个图,枚举叶子加到哪,然后对于加完叶子的树枚举删掉一个点,把删完点的图hash出来扔到multiset里,再看其他图hash出来的值和这个multiset里的东西一不一样就行了。无根树hash需要先找到重心,从重心hash,如果有两个重原创 2016-09-05 18:57:03 · 633 阅读 · 0 评论 -
codeforces 690 F3 Tree of Life (hard) 树hash
题意:一棵树,给出两个分别去掉两个不同点之后形成的图,求这棵树原来长什么样。n<=1000n<=1000我从未见过如此恶心的树hash树大概长这样,u,v分别是去掉的两个点。两个图分别长这样: 和这样: 把u,v都去掉就变成这样: 可以看到这个图被分成了3部分: 连接u,v的部分 包含u的子树去掉u,再去掉u,v之间部分剩下的一堆子树 包含v的子树去掉v,再去掉u,v之间部分剩下的一堆子原创 2016-09-06 19:03:55 · 602 阅读 · 0 评论