当前位置: 首页 > news >正文

与树上边权、连通块、二分块相关的问题(抓住各连通块之间的联系,考虑增量):CF444E

https://www.luogu.com.cn/problem/CF444E

首先肯定二分

然后是棵树,所以考虑按顺序枚举边权

然后肯定会有连通块和并查集

考虑现在场上有多个连通块,我们只保留大于 m i d mid mid 的边

则每个连通块都必须往外连边

一个很朴素的思路是判定每个连通块外面是否够 ∑ x i > w \sum x_i>w xi>w,看起来是错的,但其实是对的

考虑其代价和贡献,因为有 x i ≥ 1 x_i\ge 1 xi1,所以当他在外面取 w w w 走时,至少会放回 w w w 进去,满足 ∑ x i \sum x_i xi 不减

然后就完事了

然后你可以发现按顺序枚举边,判断啥时候不合法,甚至不需要二分


#include<bits/stdc++.h>
using namespace std;
//#define int long long 
inline int read(){int x=0,f=1;char ch=getchar(); while(ch<'0'||
ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
#define Z(x) (x)*(x)
#define pb push_back
//mt19937 rand(time(0));
//mt19937_64 rand(time(0));
//srand(time(0));
#define N 3010
//#define M
//#define mo
struct node {int u, v, w; 
}a[N];
int n, m, i, j, k, T, u, v, w[N], val[N], f[N], sum;int fa(int x) {if(f[x]==x) return x; return f[x]=fa(f[x]); 
}signed main()
{
//	freopen("in.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
//	T=read();
//	while(T--) {
//
//	}n=read(); for(i=1; i<n; ++i) a[i].u=read(), a[i].v=read(), a[i].w=read(); for(i=1; i<=n; ++i) f[i]=i, val[i]=read(), w[i]=1, sum+=val[i]; sort(a+1, a+n, [] (node x, node y) { return x.w<y.w; }); for(i=1; i<n; ++i) {u=fa(a[i].u); v=fa(a[i].v); f[u]=v; w[v]+=w[u]; val[v]+=val[u]; if(w[v]>sum-val[v]) return printf("%lld", a[i].w), 0; }printf("%d", a[n-1].w); return 0;
}
http://www.lryc.cn/news/171919.html

相关文章:

  • 解决VSCode下载速度很慢
  • 悬赏算命测算源码可以用二维码收款 可以直接拿来运营
  • 在Linux中安装nginx-1.20.1+php-7.4.28(增加扩展)
  • 使用vue-cli搭建SPA项目
  • PLC串口通讯和通讯接口知识汇总
  • Vue基础入门---详细简介
  • Qt重写QTreeWidget实现拖拽
  • 【Spring Boot】拦截器学习笔记
  • 云可观测性:提升云环境中应用程序可靠性
  • 免杀对抗-java语言-shellcode免杀-源码修改+打包exe
  • 抖音、知乎、小红书的流量算法
  • c++ 纯虚函数、抽象类
  • echarts另外存为图片
  • Mybatis返回自动递增主键值,通过实体
  • 如何在 Excel 中求平方根
  • 苹果手机无法正常使用小程序和APP
  • 【Axure教程】用中继器制作双坐标柱状折线图
  • C 风格文件输入/输出---错误处理---(std::clearerr,std::feof,std::ferror,std::perror)
  • mysql 主从复制 mysql版本5.7.35
  • iOS“超级签名”绕过App Store作弊解决方案
  • I2C子系统、读取温湿度的逻辑及代码
  • 数据结构——排序
  • 资深java面试题及答案整理
  • buuctf-[网鼎杯 2020 朱雀组]phpweb
  • SpringBoot实战(二十四)集成 LoadBalancer
  • 文件挂载nas挂载
  • 电影格式怎么转换mp4?电影格式转换教程
  • HarmonyOS之 组件的使用
  • IAM:身份验证与授权
  • Linux——vi编辑器