大意

在选择一个东西前必须要选择另一样东西,选择一样东西可以获得一定的价值,但需要花费一定的代价。
求代价 ≤ m \leq m ≤m的最大价值


思路

有依赖性的背包问题(树形背包问题)

套模板(选课) O ( n 3 ) O(n^3) O(n3)可以拿50分,于是我们可以把结果都丢给兄弟算,时间复杂度 O ( n 2 ) O(n^2) O(n2)


代码

#include<cstdio>
#include<algorithm>
using namespace std;int tot,dfn[2005],size[2005],len;
int c[2005],f[2005][2005],v[2005],n,m,x,y,l[2005];
struct node{int next,to;}e[4005];
inline int read()
{char c;int f=0,d=1;while(c=getchar(),c<48||c>57)if(c=='-')d=-1;f=(f<<3)+(f<<1)+c-48;while(c=getchar(),c>47&&c<58) f=(f<<3)+(f<<1)+c-48;return d*f;
}
inline void write(register int x){if(x>9)write(x/10);putchar(x%10+48);return;}
inline void add(register int u,register int v){e[++tot]=(node){l[u],v};l[u]=tot;return;}//建边
inline void dfs(register int x,register int fa)//求dfs序和子节点个数
{dfn[++len]=x;size[x]=1;for(register int i=l[x];i;i=e[i].next){int y=e[i].to;if(y==fa) continue;dfs(y,x);size[x]+=size[y];}return;
}
signed main()
{n=read();m=read();for(register int i=1;i<=n;i++) c[i]=read(),v[i]=read();for(register int i=1;i<n;i++) x=read(),y=read(),add(x,y),add(y,x);//输入+建边dfs(1,0);for(register int i=n;i>0;i--){int x=dfn[i];//取下当前这个点for(register int j=0;j<=m;j++) f[i][j]=max(f[i+size[x]][j],0);//把结果丢给兄弟for(register int j=v[x];j<=m;j++) f[i][j]=max(f[i][j],f[i+1][j-v[x]]+c[x]);//01背包}write(max(0,f[1][m]));//输出
}

2018年10月18日提高组 T3 摘果子相关推荐

  1. SSL2811 2017年10月30日提高组T2 摘Galo(树形dp)

    2017年10月30日提高组T2 摘Galo Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有 ...

  2. 【SSLGZ 2811】2017年10月30日提高组T2 摘Galo

    问题描述 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Galo,美味度为w ...

  3. SSL2793 2017年10月26日提高组T2 Deep(博弈)

    2017年10月26日提高组T2 Deep Description 失败的燃烧军团想要逃回深渊,Khadgar 想要追击它们. 然而进入深渊的传送门只有一座,燃烧军团和Khadgar 各有一些法力水晶 ...

  4. 【GDKOI2014】JZOJ2020年8月13日提高组T3 壕壕的寒假作业

    [GDKOI2014]JZOJ2020年8月13日提高组T3 壕壕的寒假作业 题目 Description Input Output 输出n行.第i行输出两个整数,分别表示第i份作业最早完成的时刻以及 ...

  5. JZOJ2020年8月11日提高组T3 页

    JZOJ2020年8月11日提高组T3 页 题目 Description 战神阿瑞斯听说2008年在中华大地上,将举行一届规模盛大的奥林匹克运动会,心中顿觉异常兴奋,他想让天马在广阔的天空上,举行一场 ...

  6. JZOJ7月24日提高组T3 终章-剑之魂

    JZOJ7月24日提高组T3 终章-剑之魂 题目 题解 题意 分析 Code 题目 [背景介绍] 古堡,暗鸦,斜阳,和深渊-- 等了三年,我独自一人,终于来到了这里-- "终焉的试炼吗?就在 ...

  7. 2020年10月30日提高组 C 大鱼吃小鱼

    文章目录 R e s u l t Result Result H y p e r l i n k Hyperlink Hyperlink D e s c r i p t i o n Descripti ...

  8. 2017年10月23日提高组T2 灵知的太阳信仰 单调队列优化dp

    Description 在炽热的核熔炉中,居住着一位少女,名为灵乌路空. 据说,从来没有人敢踏入过那个熔炉,因为人们畏缩于空所持有的力量--核能. 核焰,可融真金. 咳咳. 每次核融的时候,空都会选取 ...

  9. 2020年10月30日提高组 B 超级蚯蚓

    文章目录 ResultResultResult HyperlinkHyperlinkHyperlink DescriptionDescriptionDescription SolutionSoluti ...

最新文章

  1. Levenshtein 相似度算法——Levenshtein(编辑距离)
  2. apache bench linux,linux – 如何在CentOS上安装Apache Benchmark?
  3. Struts2的简单认识
  4. 【Nginx】应用静态化配置
  5. 循序渐进学Python2变量与输入
  6. [CSS]RevealTrans 滤镜
  7. 解决 Chrome 请停用以开发者模式运行的扩展程序
  8. 深度学习实时表情识别
  9. Object对象转JSON字符串
  10. 《学习的本质》读后感
  11. Unity3D 法线转换切线空间
  12. Java static关键字与静态块
  13. 如何在新浪微博中批量取消关注
  14. MMORPG服务器架构
  15. Pilosa文档翻译(二)入门指南
  16. glusterfs删除节点步骤
  17. 懒人库ButterKnife的应用
  18. 怎么在mysql查看运行日志_如何查看mysql运行、访问记录等日志
  19. iphone微信下无法播放音乐
  20. oracle 修改po税api_[zz]Oracle EBS API: 采购订单承诺日期更改示例

热门文章

  1. BIM技术汇报视频2部
  2. 我的微语录周记2011-11-14---2011-…
  3. Java是什么意思-给想要了解Java的朋友介绍Java
  4. 恐怖的fastadmin——我幻想b2c商城瞬间变成c2c的场景
  5. 自动驾驶混战,剑气二宗谁能笑傲江湖?
  6. Js失去焦点 (onblur)完成一个简单的案例
  7. Python基础必掌握的return语句用法和实践详解
  8. (赶快收藏吧) 整理了50个python小技巧
  9. 宝塔ftp连接不上的解决方法
  10. 文本框——TextField 的使用