【BZOJ 2809】 [Apio2012]dispatching
Description
Input
Output
Sample Input
5 4
0 3 3
1 3 5
2 2 2
1 2 4
2 3 1
Sample Output
HINT
如果我们选择编号为 1的忍者作为管理者并且派遣第三个和第四个忍者,薪水总和为 4,没有超过总预算 4。因为派遣了 2 个忍者并且管理者的领导力为 3,
用户的满意度为 2 ,是可以得到的用户满意度的最大值。
1 #include<cstdio> 2 #include<algorithm> 3 #define ll long long 4 using namespace std; 5 const int N=100010; 6 struct ee{int to,next;}e[100010]; 7 int l[N],c[N],sz[N],n,m,head[N],cnt,a[N][2],rt[N]; 8 ll sum[N],ans; 9 void ins(int u,int v){ 10 e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt; 11 } 12 int merge(int x,int y){ 13 if(!x||!y) return x+y; 14 if(c[x]<c[y]) swap(x,y); 15 a[x][1]=merge(a[x][1],y);swap(a[x][1],a[x][0]); 16 return x; 17 } 18 19 void dfs(int x){ 20 sz[x]=1;sum[x]=c[x];rt[x]=x; 21 for(int i=head[x];i;i=e[i].next){ 22 int v=e[i].to; 23 dfs(v);sz[x]+=sz[v];sum[x]+=sum[v]; 24 rt[x]=merge(rt[x],rt[v]); 25 } 26 while(sum[x]>m){ 27 sum[x]-=c[rt[x]];sz[x]--; 28 rt[x]=merge(a[rt[x]][0],a[rt[x]][1]); 29 } 30 ans=max(ans,(ll)l[x]*sz[x]); 31 } 32 33 int main(){ 34 scanf("%d%d",&n,&m); 35 int x; 36 for(int i=1;i<=n;i++){ 37 scanf("%d%d%d",&x,&c[i],&l[i]); 38 if(x!=0) ins(x,i); 39 } 40 dfs(1); 41 printf("%lld",ans); 42 }
转载于:https://www.cnblogs.com/wuminyan/p/5229581.html
【BZOJ 2809】 [Apio2012]dispatching相关推荐
- 【BZOJ - 4318】OSU!(概率dp,数学期望,期望的线性性)
题干: osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串. ...
- 【BZOJ 2820】YY的GCD
[BZOJ 2820]YY的GCD Problem Description 给定\(N\), \(M\),求\(1\le x\le N\), \(1\le y\le M\) 且 \(gcd(x,y)\ ...
- 【BZOJ 2820】 YY的GCD
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MB Submit: 807 Solved: 404 [ Submit][ Status] ...
- 【BZOJ 2823】 [AHOI2012]信号塔
2823: [AHOI2012]信号塔 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 469 Solved: 198 [ Submit][ Sta ...
- 【BZOJ 3926】【ZJOI 2015】 诸神眷顾的幻想乡
[BZOJ 3926/ZJOI 2015] 诸神眷顾的幻想乡 [广义SA/广义SAM] 没想到陈立杰居然玩旧作- 题意: \;\;\;\;啊?~幻想乡?~一个树状太阳花田上每个点都有人穿着 c c种颜 ...
- 【bzoj 1833】【codevs 1359】 [ZJOI2010]count 数字计数(数位dp)
1833: [ZJOI2010]count 数字计数 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 2774 Solved: 1230 [Submit ...
- 【最小树形图(奇怪的kruskal)】【SCOI 2012】【bzoj 2753】滑雪与时间胶囊
2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec Memory Limit: 128 MB Submit: 1621 Solved: 570 Description ...
- 【BZOJ 1036】[ZJOI2008]树的统计Count
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1036 [题意] [题解] 树链剖分入门题; 每一条链维护一个线段树就好; uppest ...
- JZOJ 2256. 【BZOJ 2256】【ZJOI 2008】树的统计
Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. ...
最新文章
- .NET Core微服务之基于MassTransit实现数据最终一致性(Part 1)
- 初学者学python看什么书-python初学者看什么书
- Python urllib与requests、XML和HTMLParser
- Shell程序设计 | 基本语法 :变量、I/O、算术运算、条件判断、流程控制、函数
- shell如何控制文件读写不同时_如何定时备份Mysql数据库数据?
- 首批共享单车死于2019
- 手写二叉树的基本操作
- MyCat全局序列之本地时间戳方式
- 电脑上怎么做pdf文件_PDF文件怎么拆分?一看就会!
- 用 Python 自动定时发微博
- Java中的命名规范总结
- Mybiosource丨Mybiosource玻连蛋白 (VTN),ELISA 试剂盒原理
- requests库手工识别验证码登录超星泛雅
- EventBus粘性事件
- Android 手机设备信息获取使用详解
- C/C++关于行末空格的控制输出
- 实地地产借助联想企业网盘构建信息化,重塑地产行业新未来
- Activiti流程操作
- php在线查看pdf文件
- [异常][驱动] 蓝牙 驱动
热门文章
- 超图单值专题图 - 行政区划类型学习
- 图解VC++绘制数学曲线
- seleniumIDE
- 在O(N)时间内求解 正数数组中 两个数相加的 最大值
- android文件缓存,并SD卡创建目录未能解决和bitmap内存溢出解决
- 【Linux学习】Linux系统管理2—作业调度
- php 取多级分类,php – 获取所有类别(多级)
- java 排序_Java中常见的排序算法有哪些?---选择排序
- P3 Simulink仿真-《Matlab/Simulink与控制系统仿真》程序指令总结
- 一起学nRF51xx 12 - flash