organ

【描述】

现在某组织中(记作R)有n个人,他们的联络网形成一棵以Saltless为根的树,有边相连代表两人可以直接联络。
每个人有一个代号,Saltless代号为1,且除Saltless外每个人的父节点的代号小于他自己的代号。
由于某些原因,Saltless给R的成员分别下达紧急任务,R需要分成m组行动,每个组必须满足如下条件:
    1、每个组员仅分在本组中
    2、至少有一个组员
    3、任意两个组员无需通过本组外的人就可以联络(但可以通过本组组员进行联络)
 
每个人有一个能力指数,一个组的能力指数是全组人能力指数之和。
对于任意一种正确的分组,平均度就是m组中最小能力指数。为了分组较为平均,Saltless希望平均度尽可能大。
 
【格式】
PROGRAM NAME: organ
 
INPUT FORMAT:
第一行为三个数:n,m,和Saltless的能力指数(1<=m<=n<=10000)。
接下来n-1行,每行两个数:此人的父节点代号和他的能力指数(能力指数值为正整数,不超过30,行数就是他本身的代号)
 
OUTPUT FORMAT:
输出格式: 一个数,表示最大的平均度。
 
SAMPLE INPUT (organ.in)
7 2 2
1 4
1 5
2 1
2 2
3 4
4 3
 
SAMPLE OUTPUT (organ.out)
10
 
 
【Hint】
分组:{1,3,6},{2,4,5,7}
 /*这道题目的关键就在于子节点的编号一定小于它的父亲编号,那么我们倒叙循环就可以按照题目要求(从子到父)遍历所有点。
二分一个最小值,如果i这个节点的子树上(一定可以相互联系)的总和小于x,那么就把这些值加到i的父亲上,else 就分组数目+1,
检验如果最后的分组数多于等于m,就是最小值取小了,l=mid+1,else r=mid+1,貌似最后输出l还是r,因为题目而有所不同,我区分不开,都是用样例检验
*/
#define N 10011
#include<iostream>
using namespace std;
#include<cstdio>
#include<cstring>
int p[N],fa[N],abi[N],n,m,l=,r=;
inline void input()
{
scanf("%d%d%d",&n,&m,&abi[]);
for(int i=;i<=n;++i)
{
scanf("%d%d",&fa[i],&abi[i]);
r+=abi[i];
}
}
bool check(int x)
{
for(int i=;i<=n;++i)
p[i]=abi[i];
int num=;
for(int i=n;i>=;--i)
if(p[i]<x) p[fa[i]]+=p[i];
else num++;
return (num>=m);/*当数目刚好取到的时候,我们也要取大,因为题目要最小值的最大*/
}
int main()
{
input();
int mid;
while(l<=r)
{
mid=(l+r)>>;
if(check(mid))
l=mid+;
else r=mid-;
}
printf("%d\n",r);
return ;
}

最新文章

  1. ADB简单基础命令
  2. pyside 移动窗口到屏幕中间
  3. JAVA使用堆外内存导致swap飙高
  4. 基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现
  5. 20145320 《Java程序设计》第5周学习总结
  6. pouchdb 安装使用
  7. input+div 下拉选择框
  8. Java学习日记-2.5 关于0和无穷
  9. Sentry快速开始并集成钉钉群机器人
  10. 深入理解JavaScript,这一篇就够了
  11. Forward团队-爬虫豆瓣top250项目-开发文档
  12. [Hook] 跨进程 Binder 学习指南
  13. 浅析重定向与反弹Shell命令
  14. 自定义事件 js
  15. Java设计模式----观察者模式详解
  16. ZOJ 3631 Watashi&#39;s BG DFS
  17. 雷林鹏分享:JSP 开发环境搭建
  18. 谈谈WhatsApp一年设计经历和收获
  19. Python 变量和常量及数据类型
  20. Mysql Innodb 引擎优化 参数(innodb_buffer_pool_size)

热门文章

  1. sql 去重
  2. struts2 java.lang.StackOverflowError org.apache.struts2.json.JSONWriter
  3. javascript 之拼接html字符串
  4. 硅谷新闻2--禁止viewpager预加载
  5. 论元数据和API管理工具
  6. 【GOF23设计模式】享元模式
  7. Oracle执行计划与统计信息的一些总结
  8. 使用VideoView自定义一个播放器控件
  9. JAVA基础学习day23--GUI基础
  10. fatal error: file &#39;/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Dev