bzoj3754: Tree之最小方差树

最小方差生成树 最小方差生成树 看了网上很多的最小方差生成树,复杂度都和值域有关 听了学长讲的课之后知道了与值域无关的多项式复杂度做法 这里大致讲一种mlog2的做法 首先nS=∑x2−μnS=\sum x^2-μnS=∑x2−μ 观察一下发现当μ的值固定时边j优于边i满足(wi−µ)2<(wj−µ)2(w_i − µ)^2 < (w_j − µ)^2(wi​−µ)2<(wj​−... 阅读详情

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3754

思路:首先我们考虑枚举平均数,以每条边和平均数的差的平方作为新边权

但平均数是不能直接枚举的

我们把边排好序,就会发现,对于两个相邻的边权a,b,和ab的平均数v

以区间(a,v)的任意一个值为预估平均数,我们都会得到相同的一个生成树

同样,以区间(v,b)的任意一个值为预估平均数,我们都会得到相同的一个生成树

所以我们只要枚举完这些区间,就可以跑出所有可能的生成树,分别计算它们的真实标准差,取小即可

因为这题边权是整数,所以以0.25为间隔枚举平均数可过


#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
const int maxn=505,maxm=10010;
using namespace std;
struct Edge{int x,y,v;double w;}E[maxm];
int n,m,fa[maxn],cnt;double ans=1e9,w[2000010];bool in[maxm];
bool cmp1(Edge a,Edge b){return a.v<b.v;}
bool cmp2(Edge a,Edge b){return a.w<b.w;}
int getfa(int x){return x==fa[x]?x:fa[x]=getfa(fa[x]);}
double sqr(double x){return x*x;}
double kruskal(double mid){
	for (int i=1;i<=n;i++) fa[i]=i;
	for (int i=1;i<=m;i++) E[i].w=sqr(E[i].v-mid),in[i]=0;
	sort(E+1,E+1+m,cmp2);int num=0;double len=0.0;
	for (int i=1;i<=m&&num<n-1;i++){
		int x=E[i].x,y=E[i].y;
		if (getfa(x)==getfa(y)) continue;
		num++,fa[getfa(x)]=getfa(y),len+=E[i].v,in[i]=1;
	}
	double res=0.0,aver=len/(n-1);
	for (int i=1;i<=m;i++) if (in[i]) res+=sqr(E[i].v-aver);
	return sqrt(res/(n-1));
}

int main(){
	scanf("%d%d",&n,&m);
	for (int i=1;i<=m;i++) scanf("%d%d%d",&E[i].x,&E[i].y,&E[i].v);
	sort(E+1,E+1+m,cmp1);
	for (int i=1;i<=m;i++)
		for (int j=i;j<=m;j++)
			w[++cnt]=(E[i].v+E[j].v)/2.0;
	sort(w+1,w+1+cnt),cnt=unique(w+1,w+1+cnt)-w-1;
	ans=min(ans,kruskal(w[1]/2.0)),ans=min(ans,kruskal(w[cnt]+1.0));
	for (int i=1;i<cnt;i++) ans=min(ans,kruskal((w[i]+w[i+1])/2.0));
	printf("%.4lf\n",ans);
	return 0;
}

/*
3 3
1 2 1
2 3 2
3 1 3
*/





10BASE-T1S协议中的PLCA机制:实现无碰撞网络传输的关键 本文深入解析了10BASE-T1S协议中的PLCA(物理层冲突避免)机制。作为IEEE 802.3cg标准的关键部分,PLCA通过循环调度与机会传递,从根源上避免了网络碰撞,为工业与汽车等场景提供了确定性的低延迟传输保障,是实现可靠实时通信的核心技术。 阅读详情

相关推荐

基于CPCC_S_TASK_LIST_MAINTAIN的工艺路线组件批量分配实战与避坑指南

本文详细解析了SAP PP模块中基于CPCC_S_TASK_LIST_MAINTAIN函数实现工艺路线组件批量分配的实战技巧与避坑指南。针对批量分配的核心挑战,提供了参数配置、BAPI协同使用、Excel导入等解决方案,并分享了大容量数据处理优化经验,帮助用户高效完成工艺路线组件分配任务。

weixin_33563728的博客 306

最小方差生成树(最小生成树)

问题描述 给定带权无向图,求出一颗方差最小的生成树。 输入格式 输入多组测试数据。第一行为N,M,依次是点数和边数。接下来M行,每行三个整数U,V,W,代表连接U,V的边,和权值W。保证图连通。n=m=0标志着测试文件的结束。 输出格式 对于每组数据,输出最小方差,四舍五入到0.01。输出格式按照样例。 样例输入 4 5 1 2 1 2 3 2 3

H煊的博客 1621

StarCCM+ 导入STL几何模型进行仿真

通过 Import Surface Mesh 的方法导入 STL 文件进行仿真

薛定谔的alpha狗 6129

BZOJ 3754: Tree之最小方差树

题意:Wayne在玩儿一个很有趣的游戏。在游戏中,Wayne建造了N个城市,现在他想在这些城市间修一些公路,当然并不是任意两个城市间都能修,为了道路系统的美观,一共只有M对城市间能修公路,即有若干三元组 (Ui,Vi,Ci)表示Ui和Vi间有一条长度为Ci的双向道路。当然,游戏保证了,若所有道路都修建,那么任意两城市可以互相到达。Wayne拥有恰好N-1支修建队,每支队伍能且仅能修一条道路。当然,修

MatouKariya的专栏 869

怎么在豆包里做生成式引擎优化(GEO)

本文系统介绍了豆包平台生成式引擎优化(GEO)的全套方法体系。文章首先解析了豆包与传统搜索引擎的核心差异,强调其多模态理解和上下文感知特性,并指出GEO需从关键词匹配转向用户意图动态解析。随后详细阐述了GEO优化的三大核心策略:用户意图解析技术、实时内容适配框架和权威信号强化方法,配以技术实现路径和案例说明。最后提出GEO与SEO融合的未来趋势,建议企业构建统一知识库,实现全渠道声誉管理。全文包含大量实操代码和工具链指导,为企业在AI时代的内容优化提供系统解决方案。

解锁AI流量新红利!🚀 GEO优化(生成引擎优化)助您掌控AI搜索,让AI成为您的品牌最佳代言人! 2375

2.6 SST的核心性能指标体系

本文构建了固态变压器(SST)的核心性能指标体系,涵盖电气性能、可靠性、经济性和环境适配性四大类指标。电气性能指标包括运行效率(≥97%)、功率密度(≥900kVA/m³)、谐波畸变率(≤3%)等关键参数;可靠性指标设定MTBF≥43800h、年均故障率≤1.2次/年等标准;经济性指标对比分析了初始购置成本(45-55万元)和全生命周期成本(48-55万元);环境适配性指标则明确了温度、海拔等工况要求。该体系采用量化公式和国标限值,为SST的性能测试、选型和优化提供了统一标准。

技术工作者 599

BZOJ 3754: Tree之最小方差树 枚举+kruskal

你发现平均值不会很大,所以直接暴力枚举平均值,然后跑 4*100 次最小生成树取最小值即可. code: #include <cstdio> #include <cmath> #include <algorithm> #define N 2005 #define ll long long #define setIO(s) freope...

EM LGH 127

完整指南:从基础到高级使用 Semantic Kernel

通过本文的学习,你已经掌握了从基础到高级的使用方法。安装并配置。使用简单的文本生成和自然语言处理任务。利用任务链和工具扩展构建复杂的工作流。通过记忆管理上下文,创建更智能的应用。扩展多模态处理能力,集成图像和音频分析。将应用部署到云端,并通过 Azure Functions 提供智能服务。无论是构建简单的对话应用,还是创建多模态智能服务,都提供了强大的工具和灵活的扩展机制。希望这篇文章能帮助你更好地理解并运用这个框架,构建出更加智能和高效的应用。

net core ,前端 ,python 全栈开发 2805

【BZOJ 3754】: Tree之最小方差树

题目链接:   TP 题解:   都是骗子233,我还以为是什么神奇的算法。   由于边权的范围很小,最小生成树和最大生成树之间的总和差不会太大,所以可以枚举边权和,再直接根据方差建最小生成树,每次更新答案即可。 代码:    1 #define Troy 2 3 #include <bits/stdc++.h> 4 5 using nam...

weixin_30323631的博客 69

别再自己造轮子了!用MONAI Model Zoo里的预训练模型,5分钟搞定医学影像AI项目

本文介绍了如何利用MONAI Model Zoo中的预训练模型快速搭建医学影像AI项目,大幅节省开发时间和计算资源。通过实战案例展示了UNet、DenseNet121等核心模型的应用技巧,帮助临床医生和研究者5分钟内启动高质量医学影像分析,特别适合小样本场景下的病灶分割和分类任务。

weixin_33704234的博客 238

【零基础入门unity游戏开发——2D篇】大大简化了地形创建流程,减少Rule Tile的使用 —— AutoTile自动平铺瓦片的使用介绍

Unity 2D游戏开发中的AutoTile技术详解 摘要:本文详细介绍了Unity 2D游戏开发中的AutoTile技术,这是一种智能瓦片系统,能够自动处理地形和场景拼接。文章首先讲解了AutoTile的基本概念和优势,然后分步骤指导读者如何安装2D Tilemap Extras包、创建AutoTile、设置参数和绘制遮罩。通过实际案例演示了AutoTile的使用方法,并比较了AutoTile与Rule Tile的适用场景。最后指出AutoTile虽然使用方便,但对素材要求较高,开发者应根据项目需求选择合

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 728

bzoj 3754: Tree之最小方差树 模拟退火+随机三分

题目大意: 求最小方差生成树.N<=100,M<=2000,Ci<=100 题解: 首先我们知道这么一个东西: 一些数和另一个数的差的平方之和的最小值在这个数是这些数的平均值时取得 所以我们可以枚举这个平均数,然后计算所有边与该值的差的平方 然后扔下去跑一个最小生成树 然后我们通过枚举这个平均数发现这个平均数和答案的对应函数的图像是一个波形函数 所以我们可以直接在这个波...

weixin_30613727的博客 92

36、转子 - 主动磁轴承系统建模及密封性能研究

本文研究了转子-主动磁轴承(AMBs)系统的动力学建模、稳定性分析及密封性能。通过建立包含转子、电子控制系统和接口接触的机电模型,结合Bernoulli-Euler梁理论与弹簧单元等效法,构建了考虑接口接触的闭环系统模型,并在磁悬浮鼓风机和电机上进行数值模拟与实验验证,结果表明接口接触刚度显著影响系统稳定性,尤其在高预紧扭矩下易激发弯曲模态失稳。同时,对非接触式低温密封进行了CFD仿真与实验测试,发现浮动环密封(FRS)具有最优的泄漏控制和抗磨损性能。研究成果为提升高速旋转机械的稳定性和密封可靠性提供了理论

vim8coder的博客 134

Bzoj3754 Tree之最小方差树 MST

原题网址:http://www.lydsy.com/JudgeOnline/problem.php?id=3754 思路有点像分数规划,分数规划是二分答案,根据答案每一个选项之间就有了优劣之分。一般的MST要每次取边权最小的,但是这一题要方差最小,那么边与边之间就没有直接的优劣之分,那么我们枚举平均数,对于每条边,我们算出(ai−a¯)2(a_i-\bar{a})^2,那么我们只要最小化这个和就行

MintGreen 711

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

BZOJ 3754 Tree之最小方差树 MST

题目大意:求一个图的最小标准差生成树。 思路:毫无思路,之后看了题解。居然是一个很厉害的暴力。 一个很关键的地方:枚举平均值,然后根据(a - ave(a))^2将边排序,做最小生成树。所有的标准差最小值就是答案。 但是这是为什么?如果当前枚举的ave(a)并不是选取的边的平均值怎么办? 那么就一定有一个你会枚举到的ave(a)计算之后的标准差要比现在小。 这样基本就可以说明这个

(╯°口°)╯(┴—┴ 3008

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

bzoj 3754 Tree之最小方差树

题目大意:给你一个无相连通图,要你找出一个生成树,使得他们的边权的方差最小。n 我们考虑最小生出树常用的Kruskal算法,它需要得到一个边的排列,然后在进行贪心的加边。我们可以考虑暴力每个排列,然后进行Kruskal。这样时间复杂度为O(m!m)。 我们发现复杂度的瓶颈就在于排列个数太多,于是考虑如何减少排列个数。 假设平均数为a,那么对于每条边我们可以得到一个新的权值,然后进行排序。如果

abc473848880_的专栏 1117

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【图论】Tree之最小方差树(bzoj 3754)

求最小方差生成树

ssllyf的博客 363

BZOJ 3754 Tree之最小方差树 解题报告

题目大意就是对一个无向联通图求一棵最小方差生成树并输出其标准差。 点数 -----------------------------------------------------------------华丽的分割线----------------------------------------------------------------------- 由于事先把解题报告弄成 pdf

Gromah 1201

【BZOJ 3754】Tree之最小方差树

算法标签:最小方差生成树

forever_dreams的博客 289

【BZOJ3754】Tree之最小方差树

DescriptionWayne在玩儿一个很有趣的游戏。在游戏中,Wayne建造了N个城市,现在他想在这些城市间修一些公路,当然并不是任意两个城市间都能修,为了道路系统的美观,一共只有M对城市间能修公路,即有若干三元组 (Ui,Vi,Ci)表示Ui和Vi间有一条长度为Ci的双向道路。当然,游戏保证了,若所有道路都修建,那么任意两城市可以互相到达。Wayne拥有恰好N-1支修建队,每支队伍能且仅能修一

CreationAugust is 14 years old forever 1432

[bzoj3754]Tree之最小方差树【暴力】【MST】

【题目描述】 Description Wayne在玩儿一个很有趣的游戏。在游戏中,Wayne建造了N个城市,现在他想在这些城市间修一些公路,当然并不是任意两个城市间都能修,为了道路系统的美观,一共只有M对城市间能修公路,即有若干三元组 (Ui,Vi,Ci)表示Ui和Vi间有一条长度为Ci的双向道路。当然,游戏保证了,若所有道路都修建,那么任意两城市...

dizhengyue1902的博客 192

bzoj3754 Tree之最小方差树(枚举+Kruskal)

求最小方差树。只好枚举平均数。求出可能的最小边权和和最大边权和,然后枚举边权和,做Kruskal更新答案。因为f(x)=∑i=1n(ai−x)2f(x)=\sum\limits_{i=1}^n(a_i-x)^2,当x=a¯x=\overline a时f(x)取得最小值,所以如果当前方案不合法也没关系,一定会在合法时更新为更小的。复杂度O(n∗C∗mlogm)O(n*C*mlogm)其实我觉得这样复杂

Icefox的博客 382
上一篇: bzoj2215: [Poi2011]Conspiracy
下一篇: bzoj1023: [SHOI2008]cactus仙人掌图
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值