dfs序/欧拉序
文章平均质量分 62
TeJoy
这个作者很懒,什么都没留下…
展开
-
2021牛客暑期多校训练营7 F.xay loves tress
2021牛客暑期多校训练营7 F.xay loves tress 题意: 两颗树,构造最大点集,满足第一颗树上两两互为祖先,另一颗树上两两不互为祖先,且点集在第一颗树上连通 思路: 队友喂我题意的时候没和我说要连通,足足调了3h都没看出问题,最后半个小时我重看一遍题才发现…想了想就是个树剖2个log好像能解决掉,主席树好像可以1个log解决,但我不会 首先明确点集在第一颗树上肯定是一条连续的从根到叶子上的链,点集不交在第二颗树的表现形式就是dfsdfsdfs序列不交。 我们考虑在第一颗树上dfsdfsdfs原创 2021-08-07 22:32:53 · 160 阅读 · 1 评论 -
hdu5909 (点分治+dfs序上树形DP
hdu5909 (点分治+dfs序上树形DP 题意: 问你全部点权异或为0~k的子树的数量 思路: 连通块问题,显然统计要包含所有的连通块,连通块问题可以考虑点分,点分过程中以分治重心为根即可以不重不漏包含所有连通块。 所以我们暴力固定分治重心为根即连通块中必选点,考虑一个点选了,其儿子才能选,否则其儿子不能选,这种连通块依赖问题,可以用dfs序转为树上dp 对每个分治区域做dfs序, dp[i][j]dp[i][j]dp[i][j]表示当前连通块dfs序上前i个点决策完,异或和为j的方案数, 下一个点要么原创 2021-04-15 00:26:13 · 397 阅读 · 1 评论 -
浅谈树dfs序与欧拉序与LCA结合的相关问题
浅谈树dfsdfsdfs序与欧拉序与LCALCALCA结合的相关问题 声明: 在本文章中,dfs序dfs序dfs序指dfs中点的入栈顺序,而出栈顺序表示该点子树的结尾区间 void dfs(int x,int fa){ in[x]=++ti; .... out[x]=ti; } 欧拉序长为2n2n2n,且一般记录对应位置的符号 void dfs(int x,int fa){ in[x]=++ti;f[ti]=1; ... out[x]=++ti;f[ti]=-1原创 2021-03-07 14:29:30 · 320 阅读 · 0 评论