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

正题

bzoj 3754


题目大意

求最小方差生成树


解题思路

可以枚举数值之和,然后跑最小生成树

每次加25,这样可以提高速度,且如果平均数接近,那么所选的边和答案会相同,再暴力跑一遍即可


code

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 110
#define M 2021
using namespace std;
int n,m,x,y,mn,mx,top,d[N],fa[N];
double ans;
struct node
{int x,y;double l,L;
}a[M];
int find(int x)
{return fa[x]==x?x:fa[x]=find(fa[x]);
}
bool cmp(node a,node b)
{return a.l<b.l;
}
double min(double a,double b)
{if(a<b)return a;return b;
}
double tr()
{double sum=0,num=0;top=0;for(int i=1;i<=n;++i)fa[i]=i;for(int i=1;i<=m;++i){x=find(a[i].x);y=find(a[i].y);if(x==y)continue;fa[x]=y;d[++top]=i;if(top==n-1)break;}for(int i=1;i<=top;++i)sum+=a[d[i]].L;sum/=top;for(int i=1;i<=top;++i)num+=(a[d[i]].L-sum)*(a[d[i]].L-sum);return num;
}
int read()
{char c=getchar();int ds=0,fs=1;while (c<'0'||c>'9') {if (x=='-') fs=-1;c=getchar();}while (c>='0'&&c<='9') ds=(ds<<3)+(ds<<1)+c-48,c=getchar();return ds*fs;
}
int main()
{n=read();m=read();for(int i=1;i<=m;++i){a[i].x=read();a[i].y=read();a[i].l=a[i].L=read();}ans=1000000000;for(int k=0;k<=10000;k+=25){for(int i=1;i<=m;++i)a[i].l=(a[i].L-1.0*k/(n-1))*(a[i].L-1.0*k/(n-1));sort(a+1,a+1+m,cmp);ans=min(ans,tr());}printf("%.4lf",sqrt(ans/(n-1)));return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1147 Heaps

题意&#xff1a; 给一个二叉树的层次遍历&#xff0c;问是什么类型的堆&#xff0c;是大顶堆还是小顶堆&#xff0c;然后输出这个树的后续遍历 题解&#xff1a; 大小堆根直接比较a[i]与a[i/2]即可 因为给的树的层次遍历&#xff0c;i就是i/2儿子 后序遍历&#xff0c;对于…

AspNet Core下利用 app-metrics+Grafana + InfluxDB实现高大上的性能监控界面

在日常系统工作中&#xff0c;我们为了洞察系统的问题和运作情况通常会记录日志的方式来进行分析&#xff0c;但是在很多情况下都是被动的在出问题后才会去查日志。在很多时候&#xff0c;我们可能更需要相对实时的了解整个系统或者某一时段的运行的情况&#xff0c;诸如系统出…

ACL Beginner Contest 总结——F多项式待补

A - Repeat ACL 签到题1 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<string> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; typed…

P5319-[BJOI2019]奥术神杖【0/1分数规划,AC自动机,dp】

正题 题目链接:https://www.luogu.com.cn/problem/P5319 题目大意 一个长度为nnn的串TTT&#xff0c;用0∼90\sim 90∼9填充所有的...。 然后给出mmm个串和它们的价值。 一个填充方案的价值等于&#xff1a;若TTT中出现了ccc个给出的串&#xff0c;那价值等于它们的价值乘积…

微软向Linux表白: 向Linux社区开放60000多项专利

10 月 10 日&#xff0c;微软在博客中宣布正式加入开放创新网络&#xff08;Open Invention Network, 简称“OIN”&#xff09;&#xff0c;向所有开源专利联盟的成员开放其专利组合。对开源&#xff0c;微软是认真的OIN 的首席执行官 Keith Bergelt 在采访中说道&#xff1a;微…

【线段树】扇形面积并(P3997)

正题 P3997 题目大意 给若干扇形&#xff0c;问你叠了至少k次的面积 解题思路 把园展开&#xff0c;然后用线段树维护每个点的出现次数 当最大次数大于k&#xff0c;用log的时间查找该点&#xff0c;然后计算结果&#xff0c;因为最多只有2*n次查找&#xff0c;所以不会TLE…

Codeforces Round #675 (Div. 2)——F主席树待补?

A - Fence 把凑得那条边当成最长的边&#xff0c;如果abcd那么将会共线&#xff0c;只要稍微abc大一点即可满足四边形。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<cmath…

牛客网dp专题 数位dp

文章目录数位dp例题&#xff1a;NC116652 uva11038 How many 0sNC15035 送分了QAQNC20669 诡异数字NC20665 7的意志NC17385 Beautiful NumbersCF55D NC108918 Beautiful numbers习题&#xff1a;NC17867 明七暗七NC19327 好朋友NC19945 [CQOI2016]手机号码NC20268 [SCOI2009]WI…

YbtOJ#463-序列划分【二分答案,线段树,dp】

正题 题目链接:https://www.ybtoj.com.cn/problem/463 题目大意 给出长度为nnn的序列A,BA,BA,B。要求划分成若干段满足 对于任何i<ji<ji<j&#xff0c;若iii和jjj不是同一段的&#xff0c;要求满足Bi>AjB_i>A_jBi​>Aj​每一段AiA_iAi​的最大值的和不能超…

微软技术大会预览:DevOps顾问是怎样开发自己的产品的

“没有人比我们更懂DevOps”&#xff0c;这句话不是谁都敢说的。从无人问津到整个IT行业趋之若鹜&#xff0c;DevOps火起来也不过是3年的事情&#xff0c;但是leansoftX.com的DevOps资深顾问都是在这个行业已经摸爬滚打了10年的老兵了&#xff0c;从一开始的SDLC&#xff0c;到…

【双指针】Square Pasture G(P7153)

正题 P7153 题目大意 给你平面上的若干点&#xff0c;让你画一个正方形&#xff0c;问框住的点有多少种组合 解题思路 先枚举正方形左右两边的点&#xff0c;然后用双指针计算正方形移动过程中1框住的点 然后把所有点x,y坐标取反&#xff0c;再做一次&#xff0c;这样可以把…

Neat Tree

Neat Tree 题意&#xff1a; n个数&#xff0c;每个区间的贡献为区间内最大值减最小值&#xff0c;问这个n个数的总贡献是多少&#xff1f;也就是n所能组成的所有区间的贡献值之和 题解&#xff1a; 我们可以用单调栈来做 第i个数对答案的贡献值为h[i] * 作为最大值出现的次…

PEACHPIE 0.9.11 版本发布,可以上生产了

PeachPie在官方博客&#xff08;https://www.peachpie.io/2018/10/release-0911-visual-studio.html&#xff09;发布了PeachPie的0.9.11版本 - 用于.NET和.NET Core的PHP编译器和运行时。此更新为项目管理引入了许多新功能&#xff0c;兼容性增强和改进。0.9.11是第一个非预览…

YbtOJ#573-后缀表达【二分图匹配】

正题 题目链接:https://www.ybtoj.com.cn/contest/115/problem/2 题目大意 给出一个包含字母变量和若干种同级操作符的后缀表达式。求一个等价的表达式满足该表达式的连续相同段最少。 1≤∣S∣≤25001\leq |S|\leq 25001≤∣S∣≤2500 解题思路 构建出表达树先&#xff0c;…

【DP】Sleeping Cows P(P7154)

正题 P7154 题目大意 有n头牛和n个牛棚&#xff0c;每头牛可以进入体积大于等于该牛的牛棚&#xff0c;当一个所有未进入牛棚的牛都不能再进时&#xff0c;称为极大的匹配&#xff0c;问你有多少种极大的匹配 解题思路 先把牛棚和牛放到一起&#xff0c;然后按体积排序 那么…

[ZJOI2007]棋盘制作

文章目录[ZJOI2007]棋盘制作题意&#xff1a;题解&#xff1a;单调栈代码&#xff1a;悬线法[ZJOI2007]棋盘制作 题意&#xff1a; 选取最大的01相邻的正方形和矩形&#xff0c;输出面积 题解&#xff1a; 单调栈 如图&#xff1a; 左图为题目给的样例&#xff0c;我们要找…

.net core实践系列之SSO-同域实现

前言SSO的系列还是以.Net Core作为实践例子与大家分享&#xff0c;SSO在Web方面复杂度分同域与跨域。本篇先分享同域的设计与实现&#xff0c;跨域将在下篇与大家分享。如有需要调试demo的&#xff0c;可把SSO项目部署为域名http://sso.cg.com/&#xff0c;Web1项目部署为http:…

牛客练习赛 56 E tarjan 割边

A - 小蒟和他的乐谱 签到题&#xff0c;将原序列对 7 取模之后将序列扫描一遍就可以得到答案 不过感觉题目意思还需要理解理解 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<…

YbtOJ#903-染色方案【拉格朗日插值,NTT,分治】

正题 题目链接:https://www.ybtoj.com.cn/contest/115/problem/3 题目大意 两个长度为n1n1n1的序列a,ba,ba,b aia_iai​表示涂了iii个格子的可以获得的价值。 bib_ibi​表示恰好用iii种颜色图最多nnn个格子可以获得的总价值。 给出序列bbb&#xff0c;求序列aaa n∈[1,105]n…

【并查集】封锁阳光大学(P1330)

正题 P1330 题目大意 给你一张无向图&#xff0c;问你最少选择多少个点&#xff0c;使得每一条边都有且只有一个端点被选择 解题思路 每一条边只能选一个点&#xff0c;那么考虑对这个图黑白染色 可以用扩展域并查集判二分图&#xff0c;然后两边的点选小的就好了 code #i…