JZOJ 5426 Galo
来源:互联网 发布:owncloud php版本 编辑:程序博客网 时间:2024/06/12 19:13
Galo
Description
给出一棵以
如果摘下了
最多能摘
Data Constraint
Solution
经典例题,其实也没什么好讲的,就是树型依赖动态规划。
转移方程式如下
不会树型依赖动态规划请点这里
树型依赖动态规划
Code
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define fo(i,j,l) for(int i=j;i<=l;i++)#define fd(i,j,l) for(int i=j;i>=l;i--)using namespace std;typedef long long ll;const long long N=2e7+2e3,M=N/2;ll f[N];int ne[M],lb[M],la[M],s[M],d[M],w[M];int n,m,j,k,l,i,o,a,b;void llb(int a,int b){ne[++o]=la[a]; la[a]=o; lb[o]=b;}int de(int a,int b){return (a-1)*(k+1)+b+1;}ll max(ll a,ll b){if(a>b)return a;else return b;}int main(){ freopen("galo.in","r",stdin); freopen("galo.out","w",stdout); cin>>n>>k; int kk=k+1; fo(i,2,n){ scanf("%d%d",&a,&b); llb(a,i); w[i]=b; } int r,t; d[k=1]=1; s[1]=1; s[0]=0; for(f[1]=r=1;r;){ t=f[r]; s[t]+=s[f[r+1]]; if(la[t]){ f[++r]=lb[la[t]]; d[++k]=f[r]; la[t]=ne[la[t]]; s[f[r]]=1; f[r+1]=0; }else r--; } w[1]=0; fo(i,1,n)f[de(i,0)]=0; k=kk; fd(i,n,1) fo(l,1,k) f[de(i,l)]= max(max(f[de(i+1,l)],f[de(i+s[d[i]],l)]),f[de(i+s[d[i]],l-1)]+w[d[i]]); ll ans=0; fo(i,1,k)ans=max(ans,f[de(1,i)]); printf("%lld",ans);}
阅读全文
1 0
- JZOJ 5426 Galo
- 【JZOJ 5426】【NOIP2017提高A组集训10.25】摘Galo
- JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
- JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
- 摘Galo
- Jzoj5426 摘Galo
- [2017纪中10-26]摘Galo 树型背包
- JZOJ5426. 【NOIP2017提高A组集训10.25】摘Galo
- 【NOIP2017提高A组集训10.25】摘Galo (树形dp)
- SSL2811 2017年10月30日提高组T2 摘Galo(树形dp)
- 【SSLGZ 2811】2017年10月30日提高组T2 摘Galo
- [JZOJ 3424] 粉刷匠 && [JZOJ 4254] 集体照
- [JZOJ 1280]最大匹配
- [JZOJ 1281]旅行
- [1282 JZOJ]资源勘探
- [JZOJ 1283]排序统计
- JZOJ NOIP2014模拟 8.12
- JZOJ NOIP2014模拟 8.13
- GetProcAddress()在C和C++中的区别
- 模拟进度条
- 33.Oracle杂记——Oracle常用动态视图v$sql
- Ifter Party LightOJ
- 网页爬虫
- JZOJ 5426 Galo
- spring注解问题
- 习题3.2
- 如何在微信小程序自定义个性化radio组件
- MVC中TempData、ViewData和ViewBag的区别
- 34.Oracle杂记——Oracle常用动态视图v$sqltext
- Integer与int类型之间的值比较,及相互转化
- 进程间通讯:总结
- STL中map用法详解