![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树型dp
Cold_Chair
我XXX就是饿死,死外边,从这里跳下去,也不会再做你九条可怜一个测试点
展开
-
JZOJ 5207【GDOI2018模拟7.7】暴力大神hxx
题目描述: 有26重循环,1<=x,y<=10510^5题解:我们注意到x,y最多只有一个是变量,于是我们可以连出一个森林。 设f[i][j]为底i重循环选j,它和它的子树的方案数。 直接求和,乘起来即可。 最后求答案就是把各棵树根的方案数乘起来。Code:#include<cstdio>#define ll long long#define fo(i, x, y) for(ll i =原创 2017-07-08 16:48:23 · 626 阅读 · 0 评论 -
【GDOI2019Day1模拟2019.4.28】盗梦空间(虚树+树形dp+树链剖分)
Description:1<=n,sum(k)<=1e5题解:首先建出虚树。然后考虑把所有的点分为三类:1.虚树上的点2.虚树上边(不包括虚树点)的点和伸出去的子树3.不属于1、2类的点对于虚树上的点,使用树形dp求出每一个点所有子树中第1长的和第2长的。不属于1、2类点,可以对每个点所有伸出的子树预处理深度排序后的结果,或者用multiset动态维护最难的在于第...原创 2019-04-28 20:14:05 · 658 阅读 · 0 评论 -
JZOJ 5939. 【NOIP2018模拟10.30】阻击计划
题解:先把会形成偶环的非树边直接去掉。对于形成奇环的非树边,若树上路径有交,则又会形成偶环。于是问题转换为选若干条路径,使他们无交,且权值和最大。注意到度数很小,n也很小,好像可以状压的样子。设fi,Sf_{i,S}fi,S表示以i为根的子树中,S的第j位为0表示第j个子节点的子树中的所有边和父边都没有选,为1表示可能选了。对于一条路径,将询问挂在lca上,在lca处讨论贡献,可能需...原创 2018-10-30 22:29:08 · 280 阅读 · 0 评论 -
虚树学习小记
问题引入:在一些树上询问中,有一些询问,它们每次询问多个点的产生的什么什么东西,询问很多,但是总点数很少。如果我们去暴力做,每次都要遍历整个树,复杂度就变成了O(nm)O(nm)O(nm)。如何利用询问的...原创 2018-07-01 19:25:23 · 292 阅读 · 0 评论 -
【gdoi2018 day2】滑稽子图
题目大意:大家都知道的。题解:这种有点二次项展开的题是经典套路了。先设一下树形dp,fi,0/1f_{i,0/1}表示i这个点选还是不选,子树的贡献。显然还要维护0-k次幂的和。合并的时候直接用二次项逆展开。注意当x,y都选的时候,会变,此时相当于给fy,1f_{y,1}合并个全部是1的数组。Code:#include<cstdio>#define ll long long#define fo(原创 2018-05-07 21:59:44 · 558 阅读 · 0 评论 -
【NOI2018模拟3.10】占领
Description:题解:第一问是经典的dp。先随便选一个作为根。设fif_i表示i已经被占,占领其子树需要的最少步数。转移就把i的子节点的f值从大到小排序,fi=max(fson+numson)f_i = max(f_{son}+num_{son})之后考虑换根,没有什么区别,维护前缀max,后缀max就行了。第二问的话考场时没有想到,太弱了。把a-b的路径提出来,O(n2)O(n^2)就是枚原创 2018-03-14 20:21:55 · 517 阅读 · 0 评论 -
51nod 1299 监狱逃离
原题链接.初二的时候就听老曹讲过这题。据说一个最小割就过了。最小割特别显然。每个点x->x’连代价为1的边,不要这个点就是割掉这条边。对于每个有人的点x,S->x连正无穷。对于每个叶子节点x,x->T连正无穷。对于每条树边x->y,x->y’连正无穷。跑最大流=最小割,就是答案。100000需要梦想。正解是个辣鸡树形dp。选一个叶子节点为根。fi,0/1/2f_{i,0/1/2}分别表示: 0.子原创 2017-11-29 12:30:46 · 372 阅读 · 0 评论 -
【GDOI2018模拟9.23】博弈
Description: 1<=n<=10^6题解:首先策略肯定是把Tom逼到一个点,然后去删边,接着取消标记让Tom一步步走到T那儿去。 Tom肯定会往代价最大的地方钻,1/4可以选择封住最大的先,然后Tom往次大的走。 以b为根,建树。 对于不在b->t的路径上的点,求出w,表示往它的子树中走一圈回来的最小代价,dp显然。 现在你可以想像从b->t走,你可以删掉相邻的子树,但是你不知道原创 2017-09-26 12:20:59 · 409 阅读 · 0 评论 -
【NOIP2017提高A组模拟8.24】提米树
Description: 1<=n<=100000题解:按dfs序dp。 设fif_i表示以dfs序中的第i个为叶子节点,能提供最多的决心。 盗一发题解图: 显然绿色节点会由橙色节点转移而来。 说具体的,就是dfs序上相邻的两个叶子节点x,y,y->lca路径上的点会由x->lca路径上的点转移而来。 暴力转移是O(n2)O(n^2)。 假设我们转移y->lca路径上的点时从上往下原创 2017-08-24 20:39:56 · 483 阅读 · 0 评论 -
【NOI2019模拟2019.6.29】智慧树(fft单位根性质推导)
Description:1<=n<=8000,m<=57984且m是mo-1的约数空间限制32MB,时间限制5s题解:首先思考一下m=2?m=2^?m=2?怎么做?我们知道fft的本质是一个循环卷积,这道题要求mod mmod~mmod m,那么可以利用这个特质而不管溢出,一开始对每一个点的序列进行dft,然后每次转移就是把dft的序列乘起来,...原创 2019-06-30 15:27:34 · 867 阅读 · 1 评论