![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树形DP
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
「九省联考 2018」秘密袭击 (树形DP)(生成函数)(数数)(拉格朗日插值)(线段树合并)
LOJLOJLOJ 传送门题解:考虑每个第 kkk 大贡献多少个集合∑ii∗∑S[kth(S)=i]=∑i∑S[kth(S)≥i]\sum_{i}i*\sum_S[kth(S)=i]=\sum_i\sum_S[kth(S)\ge i]i∑i∗S∑[kth(S)=i]=i∑S∑[kth(S)≥i]那么我们可以枚举每一个 iii,然后算出第 kkk 大 ≥i\ge i≥i 的个数这...原创 2020-02-07 00:11:41 · 246 阅读 · 0 评论 -
「JSOI2019」神经网络 (容斥)(组合数学)(生成函数)(树形DP)
传送门题意:给 mmm 棵树,树之间是完全图,问哈密顿回路的数量我们考虑到最后的哈密顿回路一定是有一段一段的树链串起来得到的相当于每一棵树拆分成若干条树链,大小不限个数不限,所有的拼接起来,要求相邻的不来自同一颗树我们可以树形 dpdpdp 求出一棵树分成 jjj 条链的方案数,这里带方向接着,我们先不考虑环,只考虑序列,问题转换为有 mmm 种颜色的球,每种求有若干个,求最后拼接起来...原创 2019-12-12 00:09:47 · 314 阅读 · 0 评论 -
SHOI2014 概率充电器(树形DP)(概率DP)(容斥)
传送门好题啊!很明显要从子树算一遍,然后从父亲算一遍令 f(u)f(u)f(u) 表示直接充上电或从子树充上电的概率概率合并需要容斥一下 P(A∣B)=P(A)+P(B)−P(A)∗P(B)P(A|B)=P(A)+P(B)-P(A)*P(B)P(A∣B)=P(A)+P(B)−P(A)∗P(B)然后将 f(u)f(u)f(u) 扩展到可以从父亲走过来显然如果是从父亲走过来不能是自己走上去在...原创 2019-12-11 18:45:58 · 179 阅读 · 0 评论 -
[HDU4625] JZPTREE [二类斯特林] [树形DP]
传送门考虑到由于太弱打不出下降幂,下降幂部分请自己联想感谢 csdn 没有让我打出下降幂,原来推了好久的下降幂式子结果就是个组合恒等式然后直接 DP 维护下降幂,从儿子走一遍,从父亲走一遍从父亲走的要减去从儿子走上去再走下来的, 最后在用斯特林还原就可以了#include<cstdio>#include<cstring>#define ...原创 2019-08-09 21:58:16 · 259 阅读 · 0 评论 -
[九省联考2018]秘密袭击coat [推导+树形DP]
传送门题意:求出树上一个大于等于 k 的连通块的 第 k 大之和首先可以枚举第k大x,看它能在哪些集合中然后就是一步比较经典的转换显然第 x大会被算 x 次我们考虑哪些集合满足第 k 大 >= x记 >= x 的数有 cnt 个,那么 cnt >= k 说明第 k 大>=x于是我们考虑 DP 满足这个条件的连通块个数然后就可以通...原创 2019-07-24 23:41:17 · 296 阅读 · 0 评论 -
近期刷题总结 [19 03 24]
目录CF14D Two Paths[树的直径]P3174 [HAOI2009]毛毛虫[树的直径]P2312 解方程[秦九韶算法]CF888D Almost Identity Permutations[ DP ]CF888G Xor-MST[0/1 trie]CF863D Yet Another Array Queries Problem[ splay 模板 ]...原创 2019-03-24 10:20:52 · 209 阅读 · 0 评论 -
[HAOI2010]软件安装 [Tarjan + 树形DP]
传送门我们先Tarjan 缩点 , 然后树形背包我们令f[u][i] 表示点u及儿子选i个的最大价值我们发现如果要加上儿子的贡献 , 当前点u必须选因为u必须选 , 所以j只能枚举到i-w[u]DP方程固然重要 , 范围也很重要化学方程式固然重要 , 反应条件 , 气体符号 , 沉淀符号也很重要#include<bits/stdc++.h>#defi...原创 2018-12-15 22:49:39 · 133 阅读 · 0 评论 -
保安站岗[树形DP]
传送门f[u][0] , [1] , [2] 分别表示选当前 , 选儿子 , 选父亲我们判断一下选f[son][0]没有如果没有就加上一个f[son][0]-f[son][1] 最大的 #include<bits/stdc++.h>#define N 2050#define M N*2#define inf 0x3fffffffusing name...原创 2018-12-04 20:55:30 · 196 阅读 · 0 评论 -
战略游戏[树形DP]
传送门好久没写树形DP了,找找手感,0没选,1选了 #include<bits/stdc++.h>#define N 1505#define M N*2#define inf 0x3fffffffusing namespace std;int first[N],next[M],to[M],tot;int f[N][2],n;void add(int ...原创 2018-11-28 23:11:29 · 132 阅读 · 0 评论 -
赛道修建[NOIP2018][二分+树形DP]
传送门考场上拿的55pts , 还是比较好想 ---- m=1:直径 , 链:二分答案+dis前缀和验证 , 连向1:排序+贪心正解: 先二分一个答案 然后DPf[i] 表示i子树中大于k的路径条数最多是多少g[i] 表示i子树不在那些路径上的最长路径每次将g[i]+w 放到multiset中 , 大于k , f[i]++然后用lower_bound找两个最接近的合并 , ...原创 2018-11-20 22:09:52 · 190 阅读 · 0 评论 -
聚会[树形DP]
聚会 给你 n 个点,任意两点之间有唯一路径可到达 每个点有一个点权 Ci 每条边有个边权 Wi 问:找出一个点作为聚会点,使得所有其他点到该点代价总和最小,代价=点权*路径。如:i 作为集合点,点 x 的代价为 Cx*Len(x,i) ,Len(x,i)表示 x 到 i 的距离。 【输入样例】 51 1 0 0 21 3 12 3 23 4 34 ...原创 2018-08-28 22:58:37 · 240 阅读 · 0 评论 -
连通能力[树形DP][树上倍增]
连通能力对于一棵有边权的树(N 个结点 N – 1 条边的无向连通图),我们 按以下方法定义其 连通能力: 1、规定某结点的代价为它到其它结点的距离(简单路径所经过边的权值 和)的最大值; 2、代价最小的结点的代价作为这棵树的连通能力。 设某棵给定的树以 1 号结点为根,问以任意结点为根的子树的连 通能力有多大。分析首先看到有关于树上最长链的,能想到树的直径。然而题目...原创 2018-08-29 10:36:36 · 348 阅读 · 0 评论 -
树形DP
树形DP即在树上的DP主要是把儿子的最优解传给父亲与普通DP一样,也分几步1.确定状态->第一维是节点,根据实际情况考虑加不加维2.状态转移3.边界条件->边界一般是叶子节点吧4.答案dp[根][...]以下部分来源于大佬Faithfully_lyl的博客类型1:分左右两个儿子情况 二叉苹果树有一棵苹果树,它是一棵二叉树,共N个节点,树节点编号...原创 2018-08-29 13:12:15 · 220 阅读 · 0 评论