
----树形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 · 259 阅读 · 0 评论 -
51nod 1378 夹克老爷的愤怒
设dp[x]表示x节点,能够向上控制几个节点。欠控制时,为负。 #include using 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 · 271 阅读 · 0 评论 -
51nod 1424 零树
书上跑个DP。 #include using 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 · 256 阅读 · 0 评论 -
牛客OI周赛8-提高组 B 死宅选点
由于我们只要选取总权值最小的点,而当时, 我们可以将该路径的权值,等价于进行考虑,对结果没有影响。即长度为m的路径,权值为。 很容易得到,条与点距离为的路径,等价于条与点距离为的路径。在处理时,可以采取如此的合并拆分操作。 设表示在点的子树中,与点距离为的路径数量。 设表示在整棵树中,与点距离为的路径数量。 可以通过以下转移式得到: 可以通过以下转移式得到: ,其中为的父节点...原创 2019-04-18 05:29:40 · 201 阅读 · 0 评论