----树形dp
欣君
追寻那如樱花般的绚烂
展开
-
2020牛客多校#3 J - Operating on the Tree 树形DP+组合数学
题目链接:https://ac.nowcoder.com/acm/contest/5668/J这题来是2014北京区域赛的原题。介绍的做法与官方题解不同,思想来自HDU大佬的题解。设dp_numi,jdp\_num_{i,j}dp_numi,j表示以节点iii为根的子树内,根节点iii被第jjj位选取且对答案产生贡献的总方案数设dp_deli,jdp\_del_{i,j}dp_deli,j表示以节点iii为根的子树内,根节点iii被第jjj位选取后,对其子节点的贡献影响(由于节点iii被选取了,原创 2020-07-23 19:28:10 · 226 阅读 · 0 评论 -
51nod 1378 夹克老爷的愤怒
设dp[x]表示x节点,能够向上控制几个节点。欠控制时,为负。#includeusing namespace std;const int MAXN=100100;int dp[MAXN];vector vec[MAXN];int ans,k;int dfs(int x,int fa){ int mn=1<<30,mx=-(1<<30); for(int i=0;i<vec转载 2017-02-17 13:41:25 · 248 阅读 · 0 评论 -
51nod 1424 零树
书上跑个DP。#includeusing namespace std;const int MAXN=100100;long long v[MAXN],add[MAXN],sub[MAXN];vector vec[MAXN];void dfs(int x,int fa){ for(int i=0;i<vec[x].size();i++) { if(vec[x][i]==f原创 2017-07-14 15:09:15 · 209 阅读 · 0 评论 -
牛客OI周赛8-提高组 B 死宅选点
由于我们只要选取总权值最小的点,而当时,我们可以将该路径的权值,等价于进行考虑,对结果没有影响。即长度为m的路径,权值为。很容易得到,条与点距离为的路径,等价于条与点距离为的路径。在处理时,可以采取如此的合并拆分操作。设表示在点的子树中,与点距离为的路径数量。设表示在整棵树中,与点距离为的路径数量。可以通过以下转移式得到:可以通过以下转移式得到:,其中为的父节点...原创 2019-04-18 05:29:40 · 175 阅读 · 0 评论