【题解】hdu 3586 Information Disturbing 二分 树形dp
题目描述
Information Disturbing
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)
Total Submission(s): 4003 Accepted Submission(s): 1391
Problem Description
In the battlefield , an effective way to defeat enemies is to break their communication system.
The information department told you that there are n enemy soldiers and their network which have n-1 communication routes can cover all of their soldiers. Information can exchange between any two soldiers by the communication routes. The number 1 soldier is the total commander and other soldiers who have only one neighbour is the frontline soldier.
Your boss zzn ordered you to cut off some routes to make any frontline soldiers in the network cannot reflect the information they collect from the battlefield to the total commander( number 1 soldier).
There is a kind of device who can choose some routes to cut off . But the cost (w) of any route you choose to cut off can’t be more than the device’s upper limit power. And the sum of the cost can’t be more than the device’s life m.
Now please minimize the upper limit power of your device to finish your task.
Input
The input consists of several test cases.
The first line of each test case contains 2 integers: n(n<=1000)m(m<=1000000).
Each of the following N-1 lines is of the form:
ai bi wi
It means there’s one route from ai to bi(undirected) and it takes wi cost to cut off the route with the device.
(1<=ai,bi<=n,1<=wi<=1000)
The input ends with n=m=0.
Output
Each case should output one integer, the minimal possible upper limit power of your device to finish your task.
If there is no way to finish the task, output -1.
Sample Input
5 5
1 3 2
1 4 3
3 5 5
4 2 6
0 0
Sample Output
3
大意
题目大意:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线。现要切断前线和司令部的联系,每次切断边的费用不能超过上限limit,问切断所有前线与司令部联系所花费的总费用少于m时的最小limit。1<=n<=1000,1<=m<=1000000
思路
- 二分+树形dp
- 二分可能的limit,再判断该limit下的花费是否符合m;
- dp: 对于一个节点u及其子节点v,要切断u子树下所有叶子节点与u的联系,有两种方式.
- 设dp[u]表示切断u子树下所有叶子节点与u的联系的最小花费
- 不切断u->v,$dp[u]+=dp[v]$;
- 切断u->v,$dp[u]+=dis(u,v)$;
代码
#include<cstdio>
#include<string>
#include<vector>
#include<cstring>
#include<iostream>
#define re register int
using namespace std;
const int maxn=1e3+50;
inline int read(){
int x=0,w=1;
char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
if(ch=='-') w=-1,ch=getchar();
while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-48,ch=getchar();
return x*w;
}
int head[maxn<<1];
long long dp[maxn];
int tot=1,INF=1e6;
struct data{
int to,nxt;
long long w;
}edge[maxn<<1];
void DFS(int u,int fa,int lim){
int flag=0;
dp[u]=0;
for(int i=head[u];i;i=edge[i].nxt){
int v=edge[i].to;
if(v!=fa){
flag=1;
DFS(v,u,lim);
if(edge[i].w<=lim)
dp[u]+=min(dp[v],edge[i].w);
else
dp[u]+=dp[v];
}
}
if(!flag) dp[u]=INF;
}
inline void add(int u,int v,int w){
edge[tot].to=v;
edge[tot].w=w;
edge[tot].nxt=head[u];
head[u]=tot++;
}
int main(){
int MAXX=-1;
int n,m;
while(~scanf("%d%d",&n,&m)) {
// cout<<n<<m<<endl;
if(n==0&&m==0) break;
tot=1;
memset(head,0,sizeof(head));
for(re i=1;i<n;++i) {
int a,b,w;
a=read(),b=read(),w=read();
add(a,b,w);
add(b,a,w);
MAXX=max(MAXX,w);
}
int l=0,r=MAXX,ans=-1,mid;
while(l<=r) {
//cout<<endl;
mid=(l+r)>>1;
DFS(1,-1,mid);
//cout<<l<<" "<<r<<endl;
//cout<<dp[1]<<endl;
if(dp[1]<=m){
ans=mid;
r=mid-1;
}else l=mid+1;
}
printf("%d\n",ans);
}
return 0;
} /*
5 5
1 3 2
1 4 3
3 5 5
4 2 6
0 0
*/
【题解】hdu 3586 Information Disturbing 二分 树形dp的更多相关文章
- HDU 3586 Information Disturbing (二分+树形dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3586 给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值cost表示破坏 ...
- hdu 3586 Information Disturbing(树形dp + 二分)
本文出自 http://blog.csdn.net/shuangde800 题目链接: hdu-3586 题意 给一棵n个节点的树,节点编号为1-n,根节点为1.每条边有权值,砍掉一条边要花费 ...
- HDU 3586 Information Disturbing (树形DP,二分)
题意: 给定一个敌人的通信系统,是一棵树形,每个节点是一个敌人士兵,根节点是commander,叶子是前线,我们的目的是使得敌人的前线无法将消息传到commander,需要切断一些边,切断每条边需要一 ...
- HDU - 3586 Information Disturbing 树形dp二分答案
HDU - 3586 Information Disturbing 题目大意:从敌人司令部(1号节点)到前线(叶子节点)的通信路径是一个树形结构,切断每条边的联系都需要花费w权值,现在需要你切断前线和 ...
- HDU 3586 Information Disturbing 树形DP+二分
Information Disturbing Problem Description In the battlefield , an effective way to defeat enemies ...
- HDU 3586 Information Disturbing(二分+树形dp)
http://acm.split.hdu.edu.cn/showproblem.php?pid=3586 题意: 给定一个带权无向树,要切断所有叶子节点和1号节点(总根)的联系,每次切断边的费用不能超 ...
- HDU 3586.Information Disturbing 树形dp 叶子和根不联通的最小代价
Information Disturbing Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/ ...
- hdu3586 Information Disturbing 【树形dp】
题目链接 hdu3586 题解 二分 + 简单的树形dp 我正有练一下dp的必要了 #include<iostream> #include<cstdio> #include&l ...
- HDU-3586 Information Disturbing(树形DP+删边)
题目大意:一棵有n个节点的有根树,1为根节点,边带权,表示删掉这条边的代价.现在要删掉一些边,使叶子节点不能到达根节点.但是,每次删除的边的代价不能超过limit,删掉的边的总代价不能超过m,求最小的 ...
随机推荐
- 【转】浅谈自动特征构造工具Featuretools
转自https://www.cnblogs.com/dogecheng/p/12659605.html 简介 特征工程在机器学习中具有重要意义,但是通过手动创造特征是一个缓慢且艰巨的过程.Python ...
- Linux查看PCIe版本及速率# lspci -vvv |grep Width -i
Linux查看PCIe版本及速率 https://www.cnblogs.com/lsgxeva/p/9542975.html# lspci -vvv |grep Width -i # lspci | ...
- 解决SSH自动断线,无响应的问题。
解决SSH自动断线,无响应的问题. 3 Replies 在连接远程SSH服务的时候,经常会发生长时间后的断线,或者无响应(无法再键盘输入). 总体来说有两个方法: 1.依赖ssh客户端定时发送心跳. ...
- linux安装命令行 图形查看 CPU温度 传感器-20191218
方法1:命令行sensors # sensorsi350bb-pci-0700Adapter: PCI adapterloc1: +46.0°C (high = +120.0°C, crit = +1 ...
- STM32定时器配置
void TIM1_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDe ...
- JRebel插件使用详解(IDEA热部署)(Day_44)
JRebel插件使用详解 简介 JRebel是一套JavaEE开发工具. Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率. JRebel是一款JAVA虚拟机插件,它使得JAVA ...
- vue 表格中的下拉框单选、多选处理
最近在用vue做前后端分离,需要在表格中用到下拉框,由于需求变动,从最开始的单选变为多选,折腾了许久,记录一下,供后人铺路 vue 中的表格下拉框单选 collectionsColnumOptions ...
- 【GIS风暴】30米分辨率地表覆盖数据GlobeLand30原始数据集简介及下载地址
数据集预览: GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载使用的有3年的数据:2000-2010-2020,本文主要讲述GlobeLand30的官网下载地址和数据集简介. 数 ...
- 「 洛谷 」P2151 [SDOI2009]HH去散步
小兔的话 欢迎大家在评论区留言哦~ HH去散步 题目限制 内存限制:125.00MB 时间限制:1.00s 标准输入 标准输出 题目知识点 动态规划 \(dp\) 矩阵 矩阵乘法 矩阵加速 矩阵快速幂 ...
- pika详解(五)登录认证及connectionParameters
pika详解(五)登录认证及connectionParameters 本文链接:https://blog.csdn.net/comprel/article/details/94662916 版权 pi ...