hdu3586 树形dp+二分答案
/*
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+二分答案的更多相关文章
- BZOJ3420[POI2013]Triumphal arch&BZOJ5174[Jsoi2013]哈利波特与死亡圣器——树形DP+二分答案
题目大意: 给一颗树,1号节点已经被染黑,其余是白的,两个人轮流操作,一开始B在1号节点,A选择k个点染黑,然后B走一步,如果B能走到A没染的节点则B胜,否则当A染完全部的点时,A胜.求能让A获胜的最 ...
- HDU - 3586 Information Disturbing 树形dp二分答案
HDU - 3586 Information Disturbing 题目大意:从敌人司令部(1号节点)到前线(叶子节点)的通信路径是一个树形结构,切断每条边的联系都需要花费w权值,现在需要你切断前线和 ...
- [hdu3586]Information Disturbing树形dp+二分
题意:给出一棵带权无向树,以及给定节点1,总约束为$m$,找出切断与所有叶子节点联系每条边所需要的最小价值约束. 解题关键:二分答案,转化为判定性问题,然后用树形dp验证答案即可. dp数组需要开到l ...
- 两种解法-树形dp+二分+单调队列(或RMQ)-hdu-4123-Bob’s Race
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4123 题目大意: 给一棵树,n个节点,每条边有个权值,从每个点i出发有个不经过自己走过的点的最远距离 ...
- [Codeforces 865C]Gotta Go Fast(期望dp+二分答案)
[Codeforces 865C]Gotta Go Fast(期望dp+二分答案) 题面 一个游戏一共有n个关卡,对于第i关,用a[i]时间通过的概率为p[i],用b[i]通过的时间为1-p[i],每 ...
- hdu3586 Information Disturbing[二分答案+树形DP]
给定 n 个节点的树,边有权值.1 号点是根,除了 1 号点外的度数为 1 的节点是叶子.要求切断所有叶子和 1 号点之间的联系,切断一条边要花费这条边上权值对应的代价,要求总的代价不超过 m.在满足 ...
- hdu3586 Information Disturbing 树形DP+二分
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3586 题目大意:给定n个敌方据点,编号1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值c ...
- hdu 3586 Information Disturbing(树形dp + 二分)
本文出自 http://blog.csdn.net/shuangde800 题目链接: hdu-3586 题意 给一棵n个节点的树,节点编号为1-n,根节点为1.每条边有权值,砍掉一条边要花费 ...
- hdu 3586 树形dp+二分
题目大意:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵 树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线.现要切断前线和司令部的联系,每次切断边的费用不能超过上限lim ...
随机推荐
- chrome性能分析
Chrome开发者工具之JavaScript内存分析 前端性能优化 —— 前端性能分析 Chrome DevTools - 性能监控
- 【blog】使用highlight.js高亮你的代码
我的代码 <!--代码高亮插件--> <link rel="stylesheet" type="text/css" href="/w ...
- 🍓 redux示例 🍓
- 迅为-ARM嵌入式开发一体化工业9.7寸屏幕 平板式智能触控屏
产品名称:迅为9.7寸IPS高清屏幕 适用于:[iTOP-4412精英版][iTOP-4412全能版][iTOP-4418开发板][迅为-iMX6开发板] 分辨率:1024*768 触摸屏类型:电容屏 ...
- php 实现二维数组转字符串 一步到位
第一种方法 使用 array_reduce函数 详情点击查看 第二种方法:
- android checkBox setTextColor无效
代码中动态设置checkBox的文字选中背景和未选中背景,用如下代码: checkView.setTextColor(getResources().getColor(R.color.item_colo ...
- iframe教程
有关iframe的最强大的强大的教程 $(window.parent.document).contents().find("#tab_release"+taskId2+" ...
- 【转】Python 3的pathlib模块:驯服文件系统
[转]Python 3的pathlib模块:驯服文件系统 https://python.freelycode.com/contribution/detail/1248 Python部落(python. ...
- 关于 DELPHI DATASNAP 的文章集
关于 DELPHI DATASNAP 的文章集: 1.墨者工作室 DataSnap基础 https://wenku.baidu.com/view/78715605cc1755270722088b. ...
- 解决python发送multipart/form-data请求上传文件的问题
服务器接收文件时,有时会使用表单接收的方式,这意味着我们需要使用Python的requests上传表单数据和文件. 常用的方式一般如下: data = { 'name': 'nginx' } file ...