/*
dp[i]表示孤立i结点的费用,二分功率上限w,即dp[i]在选择时不可以选择功率大于w的边
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 1050
struct Edge{int to,nxt,w;}edge[maxn<<];
int x,flag[maxn],dp[maxn],tot,head[maxn],n,m;
void init(){
tot=;
memset(head,-,sizeof head);
}
void addedge(int u,int v,int w){
edge[tot].to=v;edge[tot].nxt=head[u];edge[tot].w=w;head[u]=tot++;
}
int dfs(int u,int pre){
for(int i=head[u];i!=-;i=edge[i].nxt){
int v=edge[i].to,tmp=edge[i].w;
if(tmp>x)tmp=;
if(v==pre)continue;
if(flag[v]==)dp[u]+=tmp;//叶子结点
else dp[u]+=min(tmp,dfs(v,u));
}
return dp[u];
}
int judge(int mid){
x=mid;
memset(dp,,sizeof dp);
dfs(,);
if(dp[]>m)return ;
return ;
}
int main(){
while(cin>>n>>m&&n){
init();
int u,v,w,l=,r=,mid,ans=-;
memset(flag,,sizeof flag);
for(int i=;i<n;i++){
cin>>u>>v>>w;
addedge(u,v,w);
addedge(v,u,w);
flag[u]=;
l=min(l,w);r=max(r,w);
} while(l<=r){
mid=l+r>>;
if(judge(mid))
ans=mid,r=mid-;
else l=mid+;
} printf("%d\n",ans);
}
}

hdu3586 树形dp+二分答案的更多相关文章

  1. BZOJ3420[POI2013]Triumphal arch&BZOJ5174[Jsoi2013]哈利波特与死亡圣器——树形DP+二分答案

    题目大意: 给一颗树,1号节点已经被染黑,其余是白的,两个人轮流操作,一开始B在1号节点,A选择k个点染黑,然后B走一步,如果B能走到A没染的节点则B胜,否则当A染完全部的点时,A胜.求能让A获胜的最 ...

  2. HDU - 3586 Information Disturbing 树形dp二分答案

    HDU - 3586 Information Disturbing 题目大意:从敌人司令部(1号节点)到前线(叶子节点)的通信路径是一个树形结构,切断每条边的联系都需要花费w权值,现在需要你切断前线和 ...

  3. [hdu3586]Information Disturbing树形dp+二分

    题意:给出一棵带权无向树,以及给定节点1,总约束为$m$,找出切断与所有叶子节点联系每条边所需要的最小价值约束. 解题关键:二分答案,转化为判定性问题,然后用树形dp验证答案即可. dp数组需要开到l ...

  4. 两种解法-树形dp+二分+单调队列(或RMQ)-hdu-4123-Bob’s Race

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4123 题目大意: 给一棵树,n个节点,每条边有个权值,从每个点i出发有个不经过自己走过的点的最远距离 ...

  5. [Codeforces 865C]Gotta Go Fast(期望dp+二分答案)

    [Codeforces 865C]Gotta Go Fast(期望dp+二分答案) 题面 一个游戏一共有n个关卡,对于第i关,用a[i]时间通过的概率为p[i],用b[i]通过的时间为1-p[i],每 ...

  6. hdu3586 Information Disturbing[二分答案+树形DP]

    给定 n 个节点的树,边有权值.1 号点是根,除了 1 号点外的度数为 1 的节点是叶子.要求切断所有叶子和 1 号点之间的联系,切断一条边要花费这条边上权值对应的代价,要求总的代价不超过 m.在满足 ...

  7. hdu3586 Information Disturbing 树形DP+二分

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3586 题目大意:给定n个敌方据点,编号1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值c ...

  8. hdu 3586 Information Disturbing(树形dp + 二分)

    本文出自   http://blog.csdn.net/shuangde800 题目链接:   hdu-3586 题意 给一棵n个节点的树,节点编号为1-n,根节点为1.每条边有权值,砍掉一条边要花费 ...

  9. hdu 3586 树形dp+二分

    题目大意:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵 树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线.现要切断前线和司令部的联系,每次切断边的费用不能超过上限lim ...

随机推荐

  1. CMFCToolBar、CMFCStatusBar

    首先删除注册表HKEY_CURRENT_USER\Software\应用程序向导生成的本地应用程序之下你这铬软件的配置 CMFCToolBar m_myToolBar; CMFCToolBarImag ...

  2. 关于Sublime Text 3的几个问题总结

    问题1:Sublime Text 3的注册码. 注册码网上搜有很多,所以可以去网上找.我现在给的可能以后就不能用了,而且我也是网上找的... 这个现在最新版本是可用的. —– BEGIN LICENS ...

  3. hadoop3.x.x错误解决

    错误信息:there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation. 解决方案: (缺少用户定义而造成的)因此编辑启动和关 ...

  4. 启动项目时,mapper.xml文件没有导入

    原因分析:绑定的statement没有发现,原因是只有mapper接口的java文件,没有xml文件 解决方法:需要在pom文件中进行配置 <!-- 如果不添加此节点mybatis的mapper ...

  5. 搭建ubuntu14.04服务器必备环境

    1.  设置网络 设置网络时,一定要设置好网卡,第一个网卡一定要设置为‘br0’(如下图),设置为其他的上不去网. 修改网络配置文件,命令:sudo gedit /etc/network/interf ...

  6. SQLServer常用分页方式

    mysql的分页是基于limit关键字,oracle的分页是基于rownum行号,SQLserver的分页在下面进行研究,是基于SQLServer2012进行的测试. 0.原来的SQL的所有数据 下面 ...

  7. nodejs -Promise

    创建一个 readFile.js,读取三个文件abc的内容并输出到控制台 var fs = require('fs') fs.readFile('./a.txt','utf-8',function ( ...

  8. Faster_RCNN 2.模型准备(上)

    总结自论文:Faster_RCNN,与Pytorch代码: 本文主要介绍代码第二部分:model/utils , 首先分析一些主要理论操作,然后在代码分析里详细介绍其具体实现. 一. 主要操作 1. ...

  9. valgrind简介以及在ARM上交叉编译运行【转】

    转自:https://blog.csdn.net/dengcanjun6/article/details/54958359 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  10. html5 file 上传文件

    <body> <header> <h2>Pure HTML5 file upload</h2> </header> <div clas ...