JZOJ 5426 Galo
Galo
Description
给出一棵以11号点为根的nn个点的有根数,除了根节点以外,每个节点ii都有一个果子,美味度为wiw_i。
如果摘下了ii号果子,那么ii的子树中的果子以及ii到根的路径上的其他果子都会死掉,都不能摘。
最多能摘kk个果子,问所摘果子的美味度之和的最大值是多少。
Data Constraint
nn*kk<=10710^7
wiw_i<=10510^5
Solution
经典例题,其实也没什么好讲的,就是树型依赖动态规划。
ss[ii]表示以ii为根的子树大小。
dd[ii]表示dfsdfs序的第ii位的节点。
转移方程式如下
ff[ii][ll]=maxmax(maxmax(ff[ii+11][ll],ff[ii+ss[dd[ii]]][ll]),ff[ii+ss[dd[ii]]][ll-11]+ww[dd[ii]])
不会树型依赖动态规划请点这里
树型依赖动态规划
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);
}
JZOJ 5426 Galo相关推荐
- JZOJ 5426. 【NOIP2017提高A组集训10.25】摘Galo
Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...
- 【JZOJ 5426】【NOIP2017提高A组集训10.25】摘Galo
Description 0v0在野外看到了一棵Galo树,看到食物的0v0瞪大了眼睛,变成了OvO. 这棵Galo树可以看做是一棵以1号点为根的n个点的有根数,除了根节点以外,每个节点i都有一个Gal ...
- JZOJ 5461 购物 —— 贪心
题目:https://jzoj.net/senior/#main/show/5461 贪心,原来想了个思路,优先选优惠价最小的 K 个,然后其他按原价排序遍历: 如果当前物品没选过,原价选上,如果选过 ...
- JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫
Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...
- [jzoj NOIP2018模拟 11.01]
很庆幸打了这场模拟赛,因为这一场爆零 好像上次纪中的某场比赛我也出现了同样的问题,光是计算时间复杂度而忘记了空间的限制.想必是比上次惨的,考场上就写了两题而这两题都因为MLE爆零了.而且我T2还码了7 ...
- 【DP】小学生语文题(jzoj 5102)
正题 jzoj 5102 题目大意 给你两个串A,B,字母个数相等,可以把B的一个字符移到前面某个位置,问你最少移多少次可以使A,B相等 解题思路 设fi,jf_{i,j}fi,j为A匹配了i-n, ...
- 【二分】防具布置/秦腾与教学评估(ybtoj 二分-1-2/jzoj 1253/luogu 4403)
正题 ybtoj 二分-1-2 jzoj 1253 luogu 4403 题目大意 给出n组数:si,ei,dis_i,e_i,d_isi,ei,di 对于每组数据,表示在sis_isi加1, ...
- 【归并排序】奶牛的图片(jzoj 1812)
奶牛的图片 jzoj 1812 题目大意 给你一个序列,你可以交换相邻的两个数 让你用最少的交换次数来使得这个序列变成形如a+1,a+2...n,1,2...a−1,aa+1,a+2...n,1,2. ...
- 【归并排序】休息(jzoj 3462)
休息 jzoj 3462 题目大意 给你一个序列,你每一回合把它划分成尽可能少的单调递减的序列(第一次划分到的序列长度都是偶数),然后把每个序列翻转,问你把它变成单调递增的序列要翻转多少次 输入样例 ...
最新文章
- R语言merge函数左连接dataframe数据(Left (outer) join in R)、左连接必须将参数all设置(all.x = TRUE)、默认merge函数通过公共列名合并数据集
- 程序员的节日怎么过?
- stringbuffer mysql_javascript制作sql转换为stringBuffer的小工具
- rest api 可选参数_可选类型API
- web安全之SQL注入---第四章 如何进行SQL注入攻击
- Boost.Interprocess
- 幽默度识别第一名解决方案代码及说明
- 使用 IDEA 创建 Scala 工程
- Nutch数据集的目录具体内容
- 如何在 Ubuntu 上转换图像、音频和视频格式
- C语言自学笔记(10)
- Word编辑中的域代码详解
- winserver2008 安装elasticsearch
- 每个人都会有的第一次
- HC-SR501 人体红外感应模块 单片机
- origin出图重合部分变色了,怎么办?
- 名词诠释大全以及新站上线后,seo优化应该如何做?
- 《如何高效学习》总结
- 坯子库无法一键安装插件没用_坯子库插件集下载-坯子插件库下载v2020.1 官方最新版-西西软件下载...
- jquery用ajax提交表单