A - Anniversary party 这个题目是说,公司开宴会,为了让这个宴会的欢乐值尽量大,所以我们规定每一个员工的直属上司不能去,或者说每一个上司的直属员工不能去 , 然后求这个宴会的最大快乐值。 这个题目是我树形dp的入门题吧,虽然我到现在都还是不太懂树形dp,感觉就是模模糊糊的一个理解
转载
2019-06-05 10:25:00
66阅读
2评论
区间dp后就开垦树形dp了,树形dp其实就是把dp的过程在一棵树上进行,表现形式也很简单呢,其实就是子节点和父亲节点的关系之间的dp过程往往都是从一个没有儿子的儿子节点开始dp这样才能形成最优子结构,思考一下状态转移,当然是直接看书上的状态转移了(感觉很自然的状态转移。 这里父亲和儿子的关系已经给的
转载
2018-11-23 09:53:00
70阅读
2评论
// ACM训练联盟周赛 C. Teemo's tree problem There is an apple tree in Teemo's yard. It contains n nodes and n-1 branches, and the node 1 is always the root o
转载
2018-08-23 16:58:00
75阅读
2评论
树上背包 P1273 有线电视网 “ 在不亏本的情况下使观看转播的用户尽可能多 ”,考虑求出对于每个转播用户数量的盈亏情况。 设 \(f_{u,i}\) 表示在 \(i\) 的子树内选择 \(i\) 个转播节点的最多赚的钱或最少亏的钱(消去了第一维表示考虑前几个子树) \(f_{u,i}=\max\ ...
转载
2021-10-22 22:58:00
90阅读
2评论
树形DP即在树上的DP主要是把儿子的最优解传给父亲与普通DP一样,也分几步1.确定状态->第
原创
2022-07-05 10:35:00
79阅读
判断一棵树是不是搜索二叉树 判断一棵树是不是平衡二叉树 求数中任意两个结点的最远距离 一个公司的上下节关系是一棵多叉树,这个公司要举办晚会,你作为组织者已经摸清了大家的心理:一个员工的直 接上级如果到场,这个员工肯定不会来。每个员工都有一个活跃度的值,决定谁来你会给这个员工发邀请函
原创
2021-07-08 14:39:07
113阅读
实在太菜了,之前做过的模板还是给忘记了,wa10000次才刻骨铭心。#include<iostream>#include<cstring>using namespace std;const int N=200010;typedef long long ll;int h[N],ne[N],w[N],idx,e[N];int n;ll ans=-1e18;void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=id.
原创
2021-07-09 14:07:48
364阅读
只做过模板题,还没有题感 ###没有上司的舞会 Ural 大学有 N 名职员,编号为 1∼N。 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。 现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。 在满足这个 ...
转载
2021-10-08 15:57:00
57阅读
2评论
一些规律 状态转移方程 f[i][]表示i这棵子树怎样的最优解 用子树更新父亲 一个一个子树的更新父亲(树上背包) 计算完所有子树再更新子树 题型1:子树与计数 统计子树和,通过加减一些子树满足题目中的某些性质 Garland 统计以每个点为根的子树和,合并时遇到一个子树和为\frac{sum}{3 ...
转载
2021-08-28 15:02:00
51阅读
2评论
聚会 给你 n 个点,任意两点之间有唯一路径可到达 每个点有一个点权 Ci 每条边有个边权 Wi 问
原创
2022-07-05 10:31:03
69阅读
A school bought the first computer some time ago(so this computer's id is 1). During the recent years the school bought N-1 new computers. Each new computer was connected to one of settled earlier.
原创
2022-08-10 14:15:05
20阅读
题目https://www.luogu.org/problemnew/show/P2014思路先将树转换成左儿子右兄弟树。对于每一个 i 节点,定义dp( i , j ) 为 i 的所有兄弟和 i 的所有儿子, 和 i 自己,学 j 门课的最大学分总和。那么,可以分成两种情况:不学 i 这门课,全部学兄弟的课程,dp( i , j ) = dp( bro[ i ] , j)学 i 以...
原创
2021-07-12 17:47:20
370阅读
\(\large\texttt{Warning:}\) 此篇博客中的代码是本人在 \(2019\) 年到 \(2021\) 年间断断续续写的,所以码风有较大的差异 ,后期会更改代码。 树形 \(DP\) 只要你学会了树,还学会了 \(dp\) ,那么你就学会了树形 \(dp\) 。\(By\) 某不 ...
转载
2021-10-18 16:45:00
18阅读
2评论
树形DP进阶P2899 [USACO08JAN]Cell Phone Network G考虑结点被谁染色,显然三种情况:自己、父亲、儿子。然后就是裸的树形dpdpdp了。难点在于求dp[u][0]dp[u][0]dp[u][0],即被儿子染色的情况。我们只需枚举那个儿子被染色即可。void dfs(int u,int fa){ dp[u][2]=1,dp[u][0]=inf; for(int v:e[u]){ if(v==fa) continue; dfs(v,u); dp[u]
原创
2021-08-10 09:15:08
71阅读
浅谈树形DP 本篇随笔简单讲解一下DP中的树形DP问题。 树形DP的概念 树形DP在本蒟蒻心目中的印象就是转移过程中,某个节点维护的信息是由其子节点给出的。换句话说,树形DP就是在树上跑DP,将需要维护的答案信息一层一层地传递到根节点,然后得出整个问题的答案。 实际上,我更喜欢把图理解为一些元素加一
转载
2020-07-23 19:02:00
61阅读
2评论
树形DP进阶P2899 [USACO08JAN]Cell Phone Network G考虑结点被谁染色,显然三种情况:自己、父亲、儿子。然后就是裸的树形dpdpdp了。难点在于求dp[u][0]dp[u][0]dp[u][0],即被儿子染色的情况。我们只需枚举那个儿子被染色即可。void dfs(int u,int fa){ dp[u][2]=1,dp[u][0]=inf; for(int v:e[u]){ if(v==fa) continue; dfs(v,u); dp[u]
原创
2022-01-20 16:28:14
43阅读
Tree(树形DP)不太熟,记录一下思路传送门思路:对于树上某一个点的连通点集的数量,我们可以以它为根进行树上dpdpdp。根据乘法原理:dp[u]=dp[u]×∏v∈son(dp[v]+1)dp[u]=dp[u]\times\prod\limits_{v\in son}(dp[v]+1)d
原创
2022-01-22 11:44:27
109阅读
树形DP1.简介:树是一种数据结构,因为树具有良好的子结构,而恰好DP是从最优子问题更新而来,那么在树上做DP操作就是从树的根节点开始深搜(也就是记忆化搜索),保存每一步的最优结果。tips:树的遍历有从叶子节点->根节点和从根节点->叶子绩点两种节点,个人习惯从根节点开始遍历2.树形DP的状态定义
原创
2021-07-29 17:21:30
347阅读
Tree(树形DP)不太熟,记录一下思路传送门思路:对于树上某一个点的连通点集的数量,我们可以以它为根进行树上dpdpdp。根据乘法原理:dp[u]=dp[u]×∏v∈son(dp[v]+1)dp[u]=dp[u]\times\prod\limits_{v\in son}(dp[v]+1)dp[u]=dp[u]×v∈son∏(dp[v]+1)举个例子:以aaa为根,显然dp[b]=dp[c]=1,dp[b]=dp[c]=1,dp[b]=dp[c]=1,通过边(a,b)(a,b)(a,b)产生的
原创
2021-08-10 09:59:41
164阅读
听闻noip要考树形DP,本蒟蒻万分惶恐,特刷一坨题目,以慰受惊之心。 codevs 1486 codevs 1163 poj 1463
转载
2016-11-07 21:53:00
29阅读
2评论