题意:给出一颗数,1结点代表司令部,叶子节点代表前线,边全值代表花费,然后需要在某些边放置一些炸弹,炸弹的能量不能小于该边的费用,且炸掉的总费用不能超过m问炸弹能力最小多少,

分析dfs+二分,二分枚举下限,费用小于mid的可以炸掉,不能通过,且没有点可以到达叶子节点

#include"stdio.h"
#include"string.h"
#include"queue"
#include"vector"
#define M 10000
#define inf 1000000
using namespace std;
int t,n,head[M],degree[M],dis[M],sum;
struct node
{int u,v,w,next;
}edge[M*2];
void init()
{t=0;memset(head,-1,sizeof(head));
}
void add(int u,int v,int w)
{edge[t].u=u;edge[t].v=v;edge[t].w=w;edge[t].next=head[u];head[u]=t++;
}
int dfs(int u,int f,int mid)
{if(degree[u]==1&&u!=1)return 1;for(int i=head[u];~i;i=edge[i].next){int v=edge[i].v;if(edge[i].w<=mid)sum+=edge[i].w;if(v==f||edge[i].w<=mid)continue;if(dfs(v,u,mid))return 1;}return 0;
}
int main()
{int m,i;while(scanf("%d%d",&n,&m),m||n){init();memset(degree,0,sizeof(degree));for(i=1;i<n;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);add(a,b,c);add(b,a,c);degree[a]++;degree[b]++;}int l=0,r=1000,mid,ans=-1;while(l<=r){mid=(l+r)/2;sum=0;if(dfs(1,1,mid)){l=mid+1;}else{r=mid-1;if(sum<=m)ans=mid;}}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/mypsq/p/4348104.html

树形DP+二分(Information Disturbing HDU3586)相关推荐

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

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

  2. HDU3585 Information Disturbing 树形dp+二分

    http://acm.split.hdu.edu.cn/showproblem.php?pid=3586 题意 : 给定一个带权无向树,要切断所有叶子节点和1号节点(总根)的联系,每次切断边的费用不能 ...

  3. D. Serval and Rooted Tree(思维+树形dp+二分辅助)

    https://codeforces.com/problemset/problem/1153/D 思路:参考issue https://issue-is-vegetable.blog.csdn.net ...

  4. 【题解】hdu 3586 Information Disturbing 二分 树形dp

    题目描述 Information Disturbing Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Jav ...

  5. 【bzoj2500】幸福的道路 树形dp+倍增RMQ+二分

    原文地址:http://www.cnblogs.com/GXZlegend/p/6825389.html 题目描述 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一 ...

  6. 吉吉王国(二分+树形dp)

    吉吉王国 题意: n个点,m个边,有边权,现在要求叶子节点无法与1号点连通,要求切断的总长度不能超过m,且切断的最长的长度尽可能断 题解: 题意的前半部分可以确定是树形dp,后半部分可以确定为是二分 ...

  7. P3994 高速公路 树形DP+斜率优化+二分

    $ \color{#0066ff}{ 题目描述 }$ C国拥有一张四通八达的高速公路网树,其中有n个城市,城市之间由一共n-1条高速公路连接.除了首都1号城市,每个城市都有一家本地的客运公司,可以发车 ...

  8. LibreOJ #2478.「九省联考 2018」林克卡特树 树形dp+带权二分

    题意 给出一棵n个节点的树和k,边有边权,要求先从树中选k条边,然后把这k条边删掉,再加入k条边权为0的边,满足操作完后的图仍然是一棵树.问新树的带权直径最大是多少. n,k≤3∗105n,k≤3∗1 ...

  9. P4383 [八省联考2018]林克卡特树(树形dp+wqs二分)

    [八省联考2018]林克卡特树 题目大意:给定一棵有负权边的树,现在必须恰好删去 k k k条边,并加上恰好 k k k条权值为 0 0 0的边,要求最大化它的直径长度. 首先考虑删去 K K K条边 ...

  10. 树形DP总结,持续更新

    自己做了动态规划的题目已经有了一个月,但是成效甚微,所以来总结一下动态规划,希望自己能够温故知新.这个博客是关于树形dp的,动态规划的一类题目. 首先从最简单的树形DP入手,树形DP顾名思义就是一棵树 ...

最新文章

  1. 一星期没完成Ansible任务
  2. php怎么定义索引,PHP未定义的索引/变量
  3. greenfoot推箱子怎么做_地推需要怎么准备,才能保证地推做最有效
  4. IoT日志利器:嵌入式日志客户端(C Producer)发布
  5. 流程控制介绍,顺序结构、分支结构、循环结构、Promise对象、throw语句、break和continue关键字
  6. c/c++开发技巧_常用do_while
  7. 浙大版c语言程序设计第三版答案
  8. 新建计算机管理员账户,Win10如何新建本地管理员账户
  9. 切换进程 切换线程
  10. 使用IDA对ipa进行反编译
  11. HTML 超文本标记语言
  12. 关于魔兽的电脑优化配置方法
  13. git 生成ssh 密钥
  14. 维特比译码算法(Viterbi decoding algorithm)
  15. java拼音分词_使用Pinyin4j进行拼音分词的方法
  16. 〖Python 数据库开发实战 - MySQL篇㉘〗- MySQL 日期函数
  17. android目录结构
  18. Java 中 HttpURLConnection 与 PoLA 法则
  19. 使用计算机模拟抛硬币实验动画课件,概率论与数理统计实验2抛硬币实验的随机模拟实验报告...
  20. 如何应对生活中的临时突发事件?

热门文章

  1. 【ACL2020】用于改进文本分类的特征投影
  2. 【Linux】shell命令总结
  3. 详解机器学习之the Learning Problem
  4. 马云:旧制造业要凉,贸易战至少得打20年(附演讲全文)
  5. 到底什么方法 训练1000个样本,就能完成400万条评论分类!
  6. [arXiv18]更快的基于非二叉化自底向上策略的转移系统成分句法分析
  7. 金融评分卡项目—5.神经网络模型在银行业客户流失预警模型中的应用—MLP
  8. 深度学习2.0-5.tensorflow的基础操作之前向传播(张量)实战
  9. 机器学习算法基础4-K-近邻算法、朴素贝叶斯算法、分类模型评估、模型的选择与调优
  10. linux--kubectl命令和docker命令