【jzoj5344】【NOIP2017模拟9.3A组】【摘果子】【树型依赖背包】
来源:互联网 发布:java xml解析器 编辑:程序博客网 时间:2024/06/05 09:35
description
solution
直接树型依赖背包没什么好说的。
code
#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LF double#define LL long long#define ULL unsigned int#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) for(int i=j;i>=k;i--)#define fr(i,j) for(int i=begin[j];i;i=next[i])using namespace std;int const mn=2000+2,mm=4000+2,inf=1e9+7;int n,m,v[mn],p[mn],gra,begin[mn],to[mm],next[mm],size[mn],a[mn],f[mn][mn];void insert(int u,int v){ to[++gra]=v; next[gra]=begin[u]; begin[u]=gra;}void dfs(int p,int q){ a[++a[0]]=p; size[p]=1; fr(i,p)if(to[i]!=q){ dfs(to[i],p); size[p]+=size[to[i]]; }}int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); scanf("%d%d",&n,&m); fo(i,1,n)scanf("%d%d",&v[i],&p[i]); fo(i,1,n-1){ int u,v; scanf("%d%d",&u,&v); insert(u,v); insert(v,u); } dfs(1,0); fo(i,0,n+1)fo(j,0,m)f[i][j]=-inf; f[1][0]=0; fo(i,1,n){ int q=a[i]; fo(j,0,m){ if(j+p[q]<=m){ f[i+1][j+p[q]]=max(f[i+1][j+p[q]],f[i][j]+v[q]); f[i+size[q]][j+p[q]]=max(f[i+size[q]][j+p[q]],f[i][j]+v[q]); } f[i+size[q]][j]=max(f[i+size[q]][j],f[i][j]); } } int ans=0; fo(j,0,m)ans=max(ans,f[n+1][j]); printf("%d",ans); return 0;}
阅读全文
0 0
- 【jzoj5344】【NOIP2017模拟9.3A组】【摘果子】【树型依赖背包】
- JZOJ5344. 【NOIP2017模拟9.3A组】摘果子 树上依赖背包
- [JZOJ5344]【NOIP2017模拟9.3A组】摘果子
- JZOJ5344. 【NOIP2017模拟9.3A组】摘果子
- 【NOIP2017模拟9.3A组】摘果子
- JZOJ 5344. 【NOIP2017模拟9.3A组】摘果子
- JZOJ 5344. 【NOIP2017模拟9.3A组】摘果子
- 【NOIP2017提高A组模拟9.5】NYG的背包
- 【jzoj5346】【NOIP2017提高A组模拟9.5】【NYG的背包】【贪心】
- 【jzoj5343】【NOIP2017模拟9.3A组】【健美猫】
- JZOJ5350. 【NOIP2017提高A组模拟9.7】陶陶摘苹果
- A【NOIP2017提高组模拟12.18】
- 【JZOJ4928】【NOIP2017提高组模拟12.18】A
- 【NOIP2017提高组模拟12.18】A
- 【JZOJ4928】【NOIP2017提高组模拟12.18】A
- 【NOIP2017提高A组模拟7.7】图
- 【NOIP2017提高A组模拟7.13】abcd
- 区间【NOIP2017提高A组模拟7.10】
- 【剑指offer】题63:二叉搜索树的第k个节点
- TreeMap分析
- 【学习笔记】云服务器使用入门
- bzoj3734 [Ontak2013]Miny
- 编写Makefile
- 【jzoj5344】【NOIP2017模拟9.3A组】【摘果子】【树型依赖背包】
- tensorflow笔记: 转载的资源
- Codeforces 849A. Odds and Ends 结论题,水题
- *[leetcode] 30.Substring with Concatenation of All Words
- C++之通过引用(reference)捕获异常(12)---《More Effective C++》
- 详解原码、反码、补码——深入理解补码
- JVM系列3-GC算法 垃圾收集器概述
- 微信小程序----组件之scroll-view
- Struts2的面试题