BZOJ 3754: Tree之最小方差树 枚举+kruskal
时间:2019-12-23
本文章向大家介绍BZOJ 3754: Tree之最小方差树 枚举+kruskal ,主要包括BZOJ 3754: Tree之最小方差树 枚举+kruskal 使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
你发现平均值不会很大,所以直接暴力枚举平均值,然后跑 4*100 次最小生成树取最小值即可.
code:
#include <cstdio> #include <cmath> #include <algorithm> #define N 2005 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,m; int fa[N]; int ans=0x3f3f3f3f,sum1,sum2; struct Edge { int u,v,w; double fc; friend bool operator<(Edge a,Edge b) { return a.fc<b.fc; } }edge[N]; int find(int x) { return fa[x]==x?x:fa[x]=find(fa[x]); } int main() { // setIO("input"); scanf("%d%d",&n,&m); int i,j; for(i=1;i<=m;++i) scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].w); for(double av=0.0;av<=100;av+=0.25) { sum1=sum2=0; for(i=1;i<=n;++i) fa[i]=i; for(i=1;i<=m;++i) edge[i].fc=(edge[i].w-av)*(edge[i].w-av); sort(edge+1,edge+1+m); for(i=1;i<=m;++i) { int u=edge[i].u,v=edge[i].v; int uu=find(u),vv=find(v); if(uu!=vv) { sum1+=edge[i].w,sum2+=edge[i].w*edge[i].w; fa[vv]=uu; } } ans=min(ans,(n-1)*sum2-sum1*sum1); } printf("%.4lf\n",sqrt(ans)/(n-1)); return 0; }
原文地址:https://www.cnblogs.com/guangheli/p/12084464.html
- 小白也可以操作的手机TensorFlow教程:Android版和iOS版
- PhalApi-PHPExcel基于PhalApi的PHPExcel拓展
- [喵咪软件推荐(2)]全球服务器测速工具speedtest-cli
- 使用Keras创建一个卷积神经网络模型,可对手写数字进行识别
- 新生代的垃圾回收:Copy GC之基本原理
- [喵咪软件推荐(1)]全球国家信息库
- 一文教你在Python中打造你自己专属的面部识别系统
- [喵咪Liunx(6)]Nginx日志分析工具goaccess
- 用Atomic实现锁
- [喵咪Liunx(5)集群管理利器pssh
- synchronized关键字的语义
- [喵咪KafKa(3)]PHP拓展See-KafKa
- [喵咪KafKa(2)]单机模式运行KafKa
- 多线程内幕
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 到底什么才是真正的空间复杂度?
- RabbitMQ都写了,RocketMQ怎么能落下?
- dotnet ConcurrentDictionary 的 GetOrAdd 性能比 TryGetValue 加 TryAdd 低
- CentOS7下升级GLIBC2.31
- 网络扫描利器Fing之Linux版本使用教程
- dotnet 通过依赖注入的 Scoped 给工作流注入相同的上下文信息
- 微信文章爬虫
- vue 随记(6):构建的艺术
- Centos7发布SpringBoot项目并后台运行
- k8s部署zookeeper集群
- dotnet 使用 SemaphoreSlim 可能的内存泄露
- WPF 绑定继承的样式提示 只能根据带有基类型 IFrameworkInputElement 的目标类型的 Style 样式
- 29.opengl高级光照-视差贴图
- SpringBoot集成Mybatis开启下划线格式的数据自动转换成小驼峰格式
- WPF 列表右键菜单比较符合 MVVM 的命令绑定方法