尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

HDU3586-Information Disturbing

HDU3586-Information Disturbing
📅 发布时间:2026/6/20 10:08:04

HDU3586-Information Disturbing

题目大意

给你一棵树,你可以花费 \(w_i\) 去切断一条边。你的目标是切断每个叶子节点到根节点 \(1\) 的联系。要求在切断的总花费不大于 \(m\) 的条件下,最小化切断边的花费 \(w\) 的最大值。 无论如何都做不到,则输出 \(-1\) 。

题解

考虑二分答案,难点在于怎么check。

对于一个结点,要么切断连接它和父节点的边,要么子树下的叶子节点全部被切断的总花费。所以从叶子节点开始拓扑 \(bfs\) ,可以算出到根节点 \(1\) 为止的最小花费。\(check\) 时,只有小于 \(mid\) 的边才可以被切断。

如果二分结果 \(\geq 1000\) ,则无解输出 \(-1\) 。

#include<bits/stdc++.h>
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define umap unordered_map
#define endl '\n'
using namespace std;
using i128 = __int128;
const int mod =1e9+7;
template <typename T>void read(T&x){x=0;int f = 1;char c=getchar();for(;!isdigit(c);c=getchar())if(c=='-')f=-1;for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);x*=f;
}
template <typename T>void print(T x) {if (x < 0) { putchar('-'); x = -x; }if (x > 9) print(x / 10);putchar(x % 10 + '0');
}
#define int long long
const int N=500005;
const int M=2000005;
int n,m;
vector<pair<int,int> > G[2000];
vector<int> fa(2000);
vector<int> deg(2000);
vector<int> ww(2000);
vector<int> minn(2000,1e18);
void dfs1(int u,int f)
{fa[u]=f;for(auto [v,w]: G[u]){if(v==f) ww[u]=w;if(fa[v]!=v) continue;dfs1(v,u);}
}
inline void solve()
{for(int i=1;i<=n;i++) fa[i]=i,deg[i]=0,minn[i]=0,G[i].clear();for(int i=1;i<n;i++){int u,v,w;cin>>u>>v>>w;G[u].push_back({v,w});G[v].push_back({u,w});deg[u]++,deg[v]++;}dfs1(1,0);int l=1,r=1005;while(l<r){int mid=l+r>>1;queue<int> q;vector<int> _deg=deg;for(int i=1;i<=n;i++) minn[i]=0;for(int i=2;i<=n;i++){if(_deg[i]==1){q.push(i);_deg[i]=0;minn[i]=1e10;}}while(!q.empty()){int u=q.front();q.pop();if(ww[u]<=mid) minn[fa[u]]+=min(ww[u],minn[u]);else{minn[fa[u]]+=minn[u];}if(--_deg[fa[u]]==1&&fa[u]!=1){q.push(fa[u]);}}if(minn[1]<=m){r=mid;}else{l=mid+1;}}if(r>=1000) cout<<-1<<endl;else cout<<r<<endl;
}signed main()
{
//	ios;int T=1;
//	cin>>T;for(;T;) {cin>>n>>m;if(n==0&&m==0) break;solve();}return 0;
}

相关新闻

  • 深入解析:从传统架构到云原生,如何应对数据增长挑战?
  • Windows系统基础安全浅谈
  • 2025年11月花芽分化氨基酸水溶肥,膨果上色氨基酸水溶肥,高含量氨基酸水溶肥厂家推荐,实测促产效果与品牌解析!

最新新闻

  • 论文AI写作网址有哪些?精选6款正规平台推荐 - 掌桥科研-AI论文写作
  • 2026武汉三新高级技工学校招生简章,23个热门专业覆盖理工、艺术、医学、教育等六个学科方向 - 资讯速览
  • 2026升级耐用的顶管千斤顶 - 资讯速览
  • 2026年6月最新爱彼中国官方售后服务电话网点及客服中心地址 - 亨得利官方服务中心
  • Scout企业级AI合规部署:私有化、可审计、零外联实践指南
  • 印刷经营许可证丢了登报怎么线上办理?正规登报步骤大全 - 资讯速览

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号