![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法--动态规划--树形dp
妖怪吧
这个作者很懒,什么都没留下…
展开
-
BZOJ 1060: [ZJOI2007]时态同步
Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3380 Solved: 1356 [Submit][Status][Discuss] Description 小Q在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3….进行标号。电路板的各个节点由若干不相交的导线相连接,且对于电...原创 2018-07-17 21:07:12 · 102 阅读 · 0 评论 -
LUOGU P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…
传送门 解题思路 首先第一遍dfs预处理出每个点的子树的siz,然后可以处理出放在根节点的答案,然后递推可得其他答案,递推方程 sum[u]=sum[x]-(val[i]*siz[u])+(siz[1]-siz[u])*val[i] 代码 #include<iostream> #include<cstdio> #include<cstring> #include...原创 2018-09-18 17:06:38 · 158 阅读 · 0 评论 -
LUOGU P2015 二叉苹果树
传送门 解题思路 树形背包,dp[x][i] 表示以x为根的子树留i个树枝的最大值。 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; const int MAXN = 105; inlin...原创 2018-09-11 21:28:48 · 162 阅读 · 0 评论 -
LUOGU P1273 有线电视网
传送门 解题思路 明显的树形背包,dp[x][j] 表示以x为根的子树选j个用户的最大值,最后答案取一个最大的j使得dp[1][j] > 0 就行了。 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespa...原创 2018-09-11 20:58:16 · 141 阅读 · 0 评论 -
JZOJ 5455 拆网线
Time Limits: 1000 ms Memory Limits: 65536 KB Detailed Limits Description 企鹅国的网吧们之间由网线互相连接,形成一棵树的结构。现在由于冬天到了,供暖部门缺少燃料,于是他们决定去拆一些网线来做燃料。但是现在有K只企鹅要上网和别人联机游戏,所以他们需要把这K只企鹅安排到不同的机房(两只企鹅在同一个机房会吵架),然后拆掉...原创 2018-08-07 21:52:47 · 129 阅读 · 0 评论 -
BZOJ 2427: [HAOI2010]软件安装
Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2146 Solved: 865 [Submit][Status][Discuss] Description 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)...原创 2018-07-03 18:55:17 · 106 阅读 · 0 评论 -
BZOJ 4033: [HAOI2015]树上染色
Time Limit: 10 Sec Memory Limit: 256 MB Submit: 2569 Solved: 1088 [Submit][Status][Discuss] Description 有一棵点数为N的树,树边有边权。给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 将其他的N-K个点染成白色。将所有点染色后,你会获得黑点两两之间的距离...原创 2018-06-10 09:13:55 · 146 阅读 · 0 评论 -
JSOI 2008 魔兽地图
题目描述 DotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA (Defense of the Ancients) Allstars。 DotR里面的英雄只有一个属性——力量。他们需要购买装备来提升自己的力量值,每件装备都可以使佩戴它的英雄的力量值提高固定的点数,所以英雄的力量值等于它购买的所有装备的力量值之和...原创 2018-06-05 10:38:39 · 265 阅读 · 7 评论 -
BZOJ 4557 (JLOI 2016) 侦查守卫
4557: [JLoi2016]侦察守卫 Time Limit: 20 Sec Memory Limit: 256 MB Submit: 493 Solved: 342 [Submit][Status][Discuss] Description 小R和B神正在玩一款游戏。这款游戏的地图由N个点和N-1条无向边组成,每条无向边连接两个点,且地图是连通的 。换句话说,游戏的地图是一棵有...原创 2018-06-05 15:33:31 · 166 阅读 · 0 评论 -
IOI 2005 River (洛谷 3354)
题目描述 几乎整个Byteland王国都被森林和河流所覆盖。小点的河汇聚到一起,形成了稍大点的河。就这样,所有的河水都汇聚并流进了一条大河,最后这条大河流进了大海。这条大河的入海口处有一个村庄——名叫Bytetown。 在Byteland国,有n个伐木的村庄,这些村庄都座落在河边。目前在Bytetown,有一个巨大的伐木场,它处理着全国砍下的所有木料。木料被砍下后,顺着河流而被运到Byteto...原创 2018-04-29 20:25:32 · 138 阅读 · 0 评论 -
LUOGU P3047 [USACO12FEB]附近的牛Nearby Cows
传送门 解题思路 树形dp,看到数据范围应该能想到是O(nk)级别的算法,进而就可以设出dp状态,dp[x][j]表示以x为根的子树,距离它为i的点的总和,第一遍dp首先自底向上,dp出每个节点的子树中到他距离为j的,转移方程dp[x][j]=dp[u][j-1] ,第二遍dp自顶向下,dp出每个节点父亲那头的距离为j的,转移方程dp[u][j]+=dp[x][j-1]-dp[u][j-2] 代码...原创 2018-09-18 17:19:40 · 201 阅读 · 0 评论