HDU3585 Information Disturbing 树形dp+二分
http://acm.split.hdu.edu.cn/showproblem.php?pid=3586
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #include<cmath> 6 using namespace std; 7 const int maxn=1010; 8 int maxx=0; 9 int t,n,m; 10 int f[maxn]={};//子代lim值 11 int he[maxn]={};//对应的和 12 int vis[maxn]={}; 13 struct nod{ 14 int y; 15 int next; 16 int v; 17 }e[2*maxn]={}; 18 int head[maxn]={},tot; 19 void init(int x,int y,int v){ 20 e[++tot].y=y; 21 e[tot].v=v; 22 e[tot].next=head[x]; 23 head[x]=tot; 24 } 25 bool dfs(int x,int ls,int sum){ 26 int y,v; 27 vis[x]=1; 28 for(int i=head[x];i;i=e[i].next){ 29 y=e[i].y; v=e[i].v; 30 if((!vis[y])){ 31 if(dfs(y,ls,sum-he[x])){ 32 if(f[y]!=0){ 33 if(v<=ls&&v<he[y]){ 34 f[x]=max(f[x],v); he[x]+=v; 35 }else{ 36 f[x]=max(f[x],f[y]); he[x]+=he[y]; 37 } 38 }else{ 39 if(v<=ls){ 40 f[x]=max(f[x],v); he[x]+=v; 41 }else{ 42 if(x==1){ return 0; } 43 f[x]=0; return 1; 44 } 45 }if(he[x]>sum){ 46 if(x==1){ return 0; } 47 f[x]=0; return 1; 48 } 49 }else{ return 0; } 50 } 51 } 52 return 1; 53 } 54 void yu(){ 55 tot=0; maxx=0; 56 memset(f,0,sizeof(f)); 57 memset(he,0,sizeof(he)); 58 memset(vis,0,sizeof(vis)); 59 memset(head,0,sizeof(head)); 60 } 61 void yu2(){ 62 memset(vis,0,sizeof(vis)); 63 memset(f,0,sizeof(f)); 64 memset(he,0,sizeof(he)); 65 } 66 int doit(){ 67 int l=1,r=maxx; 68 while(r-l>1){ 69 int md=(l+r)/2; yu2(); 70 if(dfs(1,md,m)){ r=md; } 71 else{ l=md; } 72 }yu2(); 73 if(dfs(1,l,m)){ return l; } 74 yu2(); 75 if(dfs(1,r,m)){ return r; } 76 return -1; 77 } 78 int main(){ 79 for(;1;){ 80 yu(); 81 scanf("%d%d",&n,&m); 82 if(n==0&&m==0){ break; } 83 int x,y,v; 84 for(int i=1;i<n;i++){ 85 scanf("%d%d%d",&x,&y,&v); 86 maxx=max(maxx,v); 87 init(x,y,v); 88 init(y,x,v); 89 } 90 cout<<doit()<<endl; 91 } 92 return 0; 93 }
View Code
转载于:https://www.cnblogs.com/137shoebills/p/7783898.html
HDU3585 Information Disturbing 树形dp+二分相关推荐
- 两种解法-树形dp+二分+单调队列(或RMQ)-hdu-4123-Bob’s Race
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4123 题目大意: 给一棵树,n个节点,每条边有个权值,从每个点i出发有个不经过自己走过的点的最远距离 ...
- D. Serval and Rooted Tree(思维+树形dp+二分辅助)
https://codeforces.com/problemset/problem/1153/D 思路:参考issue https://issue-is-vegetable.blog.csdn.net ...
- 【题解】hdu 3586 Information Disturbing 二分 树形dp
题目描述 Information Disturbing Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Jav ...
- 【bzoj2500】幸福的道路 树形dp+倍增RMQ+二分
原文地址:http://www.cnblogs.com/GXZlegend/p/6825389.html 题目描述 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一 ...
- 吉吉王国(二分+树形dp)
吉吉王国 题意: n个点,m个边,有边权,现在要求叶子节点无法与1号点连通,要求切断的总长度不能超过m,且切断的最长的长度尽可能断 题解: 题意的前半部分可以确定是树形dp,后半部分可以确定为是二分 ...
- P3994 高速公路 树形DP+斜率优化+二分
$ \color{#0066ff}{ 题目描述 }$ C国拥有一张四通八达的高速公路网树,其中有n个城市,城市之间由一共n-1条高速公路连接.除了首都1号城市,每个城市都有一家本地的客运公司,可以发车 ...
- LibreOJ #2478.「九省联考 2018」林克卡特树 树形dp+带权二分
题意 给出一棵n个节点的树和k,边有边权,要求先从树中选k条边,然后把这k条边删掉,再加入k条边权为0的边,满足操作完后的图仍然是一棵树.问新树的带权直径最大是多少. n,k≤3∗105n,k≤3∗1 ...
- P4383 [八省联考2018]林克卡特树(树形dp+wqs二分)
[八省联考2018]林克卡特树 题目大意:给定一棵有负权边的树,现在必须恰好删去 k k k条边,并加上恰好 k k k条权值为 0 0 0的边,要求最大化它的直径长度. 首先考虑删去 K K K条边 ...
- 树形DP总结,持续更新
自己做了动态规划的题目已经有了一个月,但是成效甚微,所以来总结一下动态规划,希望自己能够温故知新.这个博客是关于树形dp的,动态规划的一类题目. 首先从最简单的树形DP入手,树形DP顾名思义就是一棵树 ...
最新文章
- 使用CSS 3创建不规则图形
- 传统方法的点云分割以及PCL中分割模块
- 使用Fastjson解析List对象时出现:{“$ref“:“$.data[0].task.OBJECTS[0]“}的问题原因及解决方法
- 位于/var/log目录下的20个Linux日志文件
- Athentech Perfectly Clear中文版
- AutoHotkey纯命令获取Chrome等浏览器的当前网址
- 货店管理(delphi+sqlserver)
- d3 i5 神舟精盾k480n_6款神舟精盾轻薄记本发布,10nm十代酷睿,匠心打造国潮好本...
- 2020中国移动阅读行业报告
- mysql sillyr x.so_mysql2.so:libmysqlclient_r.so.15:无法打开共享对象文件:没有这样的文件或目录...
- 移动端mintUI mt-datetime-picker 组件使用详解
- 2015年度夏季假期学习内容
- 斐讯K3官改,安装onmp教程,回馈社区。
- 计算机主机三维模型,三维模型
- 软件开发常用图标网址大全
- 水安ABC考试多选练习题库
- Gson解析异常com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN解决方案
- Ascent代码分析4-World之地图管理及实现结构
- python 线性回归函数_8种用Python实现线性回归的方法,究竟哪个方法最高效?
- Unity游戏开发——unity接入多渠道sdk
热门文章
- 数据增强语义分割和作物杂草分类
- 基于卷积神经网络的大豆病害识别
- oracle多表嵌套查询使用,oracle sql 多表 嵌套子查询 连接查询, join where exist i...
- web 导出文件时如何让用户选择路径_Visual Paradigm 教程[UML]:如何绘制动画UML活动图?...
- matlab ifft频率分辨率,[FFT] matlab中关于FFT的使用(理解频率分辨率、补零问题)
- 识别速度3.6ms/帧!人像抠图、工业质检、遥感识别,用这一个分割模型就够了...
- 在真实数据集上的随机森林模型参数调优
- jsp+mysql汽车维修管理系统的设计与开发_基于JSP+MySQl的计算机学院设备报修管理系统.doc...
- 计算机用户在使用计算机文件时6,201606-计算机基础选择题(含答案)(6页)-原创力文档...
- Android星座查询实验报告,数字基带传输实验实验报告