BZOJ2368 : Modern Art Plagiarism 树同构】的更多相关文章

枚举$T_1$的树根,然后DP,设$f[i][j]$表示$T_1$的子树$i$是否存在包括i的连通子树与$T_2$的子树$j$同构. 若$j$是叶子,那么显然可以. 若$deg_i<deg_j$,那么显然不可以. 否则将$i$与$j$所有互相同构的儿子之间连边,二分图匹配判断是否存在完美匹配即可. #include<cstdio> #include<algorithm> const int N=105; int T,C,n,m,o,i,j,k,x,y; int g[N],v[…
转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3933 给你两棵无根树,让你判断这两棵树是否同构 不会判断树同构,果断抄了个模板,乱搞给过掉了. 首先由于给的是无根树,而要判断无根树是否同构得以重心为根,然后做一个括号序列…
题意 题目链接 Sol 树的同构问题,直接拿hash判一下,具体流程大概是这样的: 首先转化为有根树,预处理出第\(i\)棵树以\(j\)为根时的hash值. 那么两个树同构当且仅当把两棵树的hash数组排完序后完全一致(感性理解一下) /* */ #include<bits/stdc++.h> #define Pair pair<int, int> #define MP(x, y) make_pair(x, y) #define fi first #define se secon…
4780: [Usaco2017 Open]Modern Art 2 Time Limit: 10 Sec  Memory Limit: 128 MB Description Having become bored with standard 2-dimensional artwork (and also frustrated at others copying her w ork), the great bovine artist Picowso has decided to switch t…
lesson18 Electric currents in modern art electricity n. 电力:电流; electric adj. 电的:电动的; electronic adj. 电子的 current n. (水,气,电)流 fail to do (想尽了办法)未能做某事 be used to doing 适应... so-called 有点贬义的意思 exhibition n. 展览,显示:展览会: hold an exhibition 举办一个展会 exhibit 展…
BZOJ 4337 简单记录一种树哈希的方法:以$x$为根的子树的哈希值为$\sum_{y \in son(x)}f_y*base_i$,$f_y$表示以$y$为根的树的哈希值,其中$i$表示$f_y$在若干个儿子中的排名,$base$是$rand$出的对一个质数取模之后的很大的数. 对于本题这样的情况,可以每一个结点都拿出来作为根计算一下,然后再把所有的结果排个序,如果两棵树同构那么排序之后得到的序列一定是一样的. 时间复杂度$O(n^3)$. Code: #include <cstdio>…
P3668 [USACO17OPEN]Modern Art 2 现代艺术2 题目背景 小TY的同学HF也想创作艺术 HF只有一块长条状的画布(画条),所以每一次涂色只能涂上连续几个单位的颜料,同样新的颜料可以完全覆盖旧的颜料 由于他的颜料同样非常傲娇,每次涂完要等上1day才能完全干,只有旧颜料干了以后才能用新颜料覆盖 现在小HF用了2017个年头终于画出了一个大作品,自己非常满意 现在他想复制这份作品 题目描述 Having become bored with standard 2-dimen…
Andrew and Chemistry Description During the chemistry lesson Andrew learned that the saturated hydrocarbons (alkanes) enter into radical chlorination reaction. Andrew is a very curious boy, so he wondered how many different products of the reaction m…
题意:给定一棵n个点的树,问删去某个点之后所有的树同构,这样分割出来的树最多能有几棵 n<=4000 思路:分割成至少两个size相等的联通块之后size必定小于n/2,与树的重心的定义相同 预处理出重心(0,1或2个)之后上无根树同构板子 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned int uint; typedef unsigned long long ull;…
LINK:模板 树同构 题目说的很迷 给了一棵有根树 但是重新标号 言外之意还是一棵无根树 然后要求判断是否重构. 由于时无根的 所以一个比较显然的想法暴力枚举根. 然后做树hash或者树的最小表示法. 前者做一次时n^2logn的 而后者则是严格的n^2logn的. 这样加上暴力枚举根就是n^3logn了. 最后我们将这些东西再sort一下和其他的树做对比 如果所有的都完全一致那么说明时同构的. 算法正确性 首先完全一样的树 再做树hash或者最小表示法时 得到的东西必然一样. 这个可以利用递…