吉吉王国

题意:

n个点,m个边,有边权,现在要求叶子节点无法与1号点连通,要求切断的总长度不能超过m,且切断的最长的长度尽可能断

题解:

题意的前半部分可以确定是树形dp,后半部分可以确定为是二分
树形dp部分和这个题差不多
Rinne Loves Edges
我们二分一个长度的上限,然后在dp中限制,判断二分的值是否合理

代码:

#include <bits/stdc++.h>
#define endl '\n'using namespace std;const int maxn=1e3+10;
typedef long long ll;
vector<pair<ll,ll> > edge[maxn];
ll sz[maxn];ll n,m;
void dfs(ll x,ll fa,ll mid){  //mid为每条道路限制长度bool flag=false;for(auto i:edge[x]){if(i.first==fa) continue;dfs(i.first,x,mid);flag=true;if(i.second>mid) sz[x]+=sz[i.first];else sz[x]+=min(i.second,sz[i.first]);}if(!flag) sz[x]=1e9;
}bool che(ll x){   //最长的道路memset(sz,0,sizeof sz);dfs(1,0,x);//cout<<sz[1]<<endl;if(sz[1]<=m) return true;else return false;
}int main(){cin>>n>>m;for(ll i=0;i<n-1;i++){ll x,y,z;cin>>x>>y>>z;edge[x].push_back({y,z});edge[y].push_back({x,z});}ll l=1,r=m+1;while(l<r){ll mid=(l+r)/2;if(che(mid))r=mid;else l=mid+1;}if(l==m+1) cout<<-1<<endl;else cout<<l<<endl;}

吉吉王国(二分+树形dp)相关推荐

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

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

  2. P4383-[八省联考2018]林克卡特树【wqs二分,树形dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P4383 题目大意 nnn个点的一棵树,要求删除kkk条边然后接上kkk条边权为000的边后形成的树上选择一对(p, ...

  3. 吉吉国王(树形dp)

    思路:题目要求的是减去所有叶子结点的值不超过m时,最长边的最小值是多少?dp[i][j] 表示j为最长的边,以i为根节点,减去所有叶子节点的最小总权值.那么我们有2种选择 1.减去子节点中与叶子节点相 ...

  4. BZOJ 4753 二分+树形DP

    思路: 先二分答案 f[x][j]表示在x的子树里选j个点 f[x][j+k]=max(f[x][j+k],f[x][j]+f[v[i]][k]); 初始化 x!=0 -> f[x][1]=p[ ...

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

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

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

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

  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条边 ...

最新文章

  1. xp主机用VMware9和10安装Ubuntu12.04后无法进入图像界面
  2. 销售抬头文本配置方法
  3. 容器私有云和持续发布都要解决哪些基础问题 第一集
  4. [云炬python3玩转机器学习笔记] 3-7Numpy中的矩阵运算
  5. 并发下HashMap头插会造成死循环情况说明
  6. 【tool】kali连接rdp远程桌面
  7. 一名技术leader的工作随笔
  8. 如何关闭Windows 1011自动更新
  9. Dreamweaver 制作模板
  10. OpenJ_Bailian - 2714 求平均年龄
  11. 【C语言】字符串数组按字典升序
  12. 【程序员进阶之路】吴恩达Deeplearning.ai课程学习全体验:深度学习必备课程
  13. 戴尔win10开机后,在桌面点右键一直转圈,但任务栏又能正常点击
  14. IBM MB(IIB)访问数据库的消息流开发示例
  15. tx2 安装opencv4.1.1及opencv_contrib-4.1.1
  16. 史上最纯净的电脑系统重装教程,怕你不会,手把手教你,会了支持一下老学长!
  17. google chrome浏览器 Linux平台安装包(rpm,deb)
  18. ESP-01S开发环境搭建及新手教程点灯教程全解详细配图(ESP8266-01s)
  19. AndroidStudio音乐播放服务service实现
  20. win7注册表修改默认搜索引擎

热门文章

  1. 两度破译“白宫密码”,让美国政府部门崩溃,却称自己是抱娃敲代码的普通妈妈
  2. 获取 子文件夹 后缀_CSDN学院第一个Ptython Homework-- 递归统计文件夹大小
  3. linux windows多任务,windows是多用户多任务系统吗?
  4. matlab作业1参考答案,matlab课后习题答案1到6章
  5. k8s创建pod加入容器_K8S架构原理及其工作流程
  6. 雨棚板弹性法计算简图_钢结构工程量计算4点注意事项,还不来看?
  7. 信息技术上册教案了解计算机,信息技术上册全册教案
  8. python中abc属于字符串吗_在Python中,字符串s = 'abc',那么执行表达式s+'d'之后,s的打印结果是( )。...
  9. java 验证登陆_java登陆界面验证
  10. 存储mysql数据存在特殊字符时处理_SQL数据库对于保存特殊字符的解决办法