【BZOJ】【P3754】【Tree之最小方差树】【Mst】
来源:互联网 发布:arcgis导出栅格数据 编辑:程序博客网 时间:2024/06/03 23:49
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3754
推了一下方差的式子……然后……什么也没发现T_T
然后看数据范围小到爆
于是我们枚举平均数做最小生成树就可以了
rank成功倒数第一
Code:
#include<bits/stdc++.h>using namespace std;const int maxn=101;struct edge{int u,v,c;double w;bool operator<(edge oth)const{return w<oth.w;};}edges[2001];int fa[maxn];int find(int x){if(fa[x]==x)return x;return fa[x]=find(fa[x]);}int n,m;double abar;double Mst(){double ans=0,res=0;int cnt=0;for(int i=1;i<=n;i++)fa[i]=i;sort(edges+1,edges+1+m);for(int i=1;i<=m;i++){int u=edges[i].u,v=edges[i].v;if(find(u)!=find(v)){fa[find(u)]=find(v);ans+=edges[i].w;res+=edges[i].c;if(++cnt==n-1)break;}}return fabs(res-abar*(n-1))<1?ans:1e10;}double ans=1e10;int mx=0;int main(){scanf("%d%d",&n,&m);for(int i=1;i<=m;i++)scanf("%d%d%d",&edges[i].u,&edges[i].v,&edges[i].c),mx=max(mx,edges[i].c);for(int i=0;i<=mx*100;i++){abar=(double)i/100.0;for(int j=1;j<=m;j++)edges[j].w=(double)(edges[j].c-abar)*(edges[j].c-abar);ans=min(ans,Mst());}printf("%.4lf\n",sqrt((double)ans/(n-1)));return 0;}
0 0
- 【BZOJ】【P3754】【Tree之最小方差树】【Mst】
- BZOJ 3754 Tree之最小方差树 MST
- Bzoj3754 Tree之最小方差树 MST
- BZOJ 3754: Tree之最小方差树
- bzoj 3754 Tree之最小方差树
- BZOJ 3754 Tree之最小方差树 解题报告
- 【BZOJ 3754】【JZOJ 3410]】Tree之最小方差树 -
- 【BZOJ3754】Tree之最小方差树
- bzoj3754: Tree之最小方差树
- 蓝桥杯练习题 最小方差生成树 (Kruskal MST 好题)
- [BZOJ 1937][Shoi2004]Mst 最小生成树
- bzoj 1937: [Shoi2004]Mst 最小生成树
- BZOJ 1937[Shoi2004]Mst 最小生成树
- bzoj 1937: [Shoi2004]Mst 最小生成树
- 最小生成树(Minimum-Spanning-Tree, MST)
- bzoj 1937: [Shoi2004]Mst 最小生成树 费用流
- bzoj 1937: [Shoi2004]Mst 最小生成树 (KM算法)
- BZOJ 2429 [HAOI2006]聪明的猴子 MST最小生成树
- C++中的explicit关键字
- 条款13 以对象管理资源
- JAVA环境变量配置
- 关于似然函数,后验函数的总结
- 列举出一段时间内内占用的cpu最多的n个进程
- 【BZOJ】【P3754】【Tree之最小方差树】【Mst】
- Python: 什么是*args和**kwargs
- Mybatis中的resultType和resultMap 区别
- 奥比中光招聘 --- COO
- 1022. D进制的A+B (20) (数学啊 ZJU_PAT)
- 模拟银行存款(进程和多线程)
- 小谈Cocos2d-JS中的getRotation()函数
- OD使用教程 调试篇
- Android 关于inflate