【xsy1303】生成树 乱搞
题目大意:给你n个点,问这n个点构成的最小标准差生成树的值
这题题解里面写的都是什么代码??
你用O(n^4)的复杂度,枚举出两条边,然后求平均数。
对于剩下的边,我们求出这些边与平均数的差,然后求最下差生成树。
然后就过了???
不是很懂
#include<bits/stdc++.h>
#define M 22
#define sqr(x) ((x)*(x))
using namespace std; double x[M]={},y[M]={},dis[M][M]={}; int n; int m=; struct edge{
int u,v; double w;
friend bool operator <(edge a,edge b){return a.w<b.w;}
}a[M*M]; bool sel[M*M]={}; int f[M]={}; int get(int x){return x==f[x]?x:f[x]=get(f[x]);} map<double,int> mp; double solve(double avg){
if(mp[avg]) return ; mp[avg]=;
memset(sel,,sizeof(sel));
for(int i=;i<=n;i++) f[i]=i;
m=;
for(int i=;i<=n;i++)
for(int j=i+;j<=n;j++)
a[++m]={i,j,sqr(dis[i][j]-avg)};
sort(a+,a+m+);
double sum=;
for(int i=;i<=m;i++){
int U=get(a[i].u),V=get(a[i].v);
if(U==V) continue;
sel[i]=;
f[U]=V;
}
for(int i=;i<=m;i++) if(sel[i]){
sum+=dis[a[i].u][a[i].v];
}
avg=sum/(n-); sum=;
for(int i=;i<=m;i++) if(sel[i]){
sum+=sqr(avg-dis[a[i].u][a[i].v]);
}
return sum;
} int Main(){
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%lf",x+i);
for(int j=;j<=n;j++) scanf("%lf",y+j);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
dis[i][j]=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j])); double minn=;
for(int i1=;i1<=n;i1++)
for(int j1=;j1<=n;j1++) if(i1!=j1){
double dis1=dis[i1][j1];
for(int i2=;i2<=n;i2++)
for(int j2=;j2<=n;j2++) if(i2!=j2){
double dis2=dis[i2][j2];
minn=min(minn,solve((dis1+dis2)/));
}
}
printf("%.3lf\n",sqrt(minn/(n-)));
}
int main(){
int cas; cin>>cas;
while(cas--) Main();
}
【xsy1303】生成树 乱搞的更多相关文章
- 「10.14」小P的2048(模拟)·小P的单调数列(性质,DP)·小P的生成树(乱搞)
A. 小P的2048 模拟.....又没啥可说的,以后要认真打打模拟题了... B. 小P的单调数列 考场$n^2log(n)$的SB思路有人听吗 正解当然不是这样, 事实上我们每次选取的只有一段区间 ...
- 2016 10 28考试 dp 乱搞 树状数组
2016 10 28 考试 时间 7:50 AM to 11:15 AM 下载链接: 试题 考试包 这次考试对自己的表现非常不满意!! T1看出来是dp题目,但是在考试过程中并没有推出转移方程,考虑了 ...
- URAL 1827 Indigenous Wars(排序、乱搞)
题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...
- UVA 11853 [dfs乱搞]
/* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...
- Codeforces 732e [贪心][stl乱搞]
/* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...
- 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)
4692: Beautiful Spacing Time Limit: 15 Sec Memory Limit: 128 MBSubmit: 46 Solved: 21[Submit][Statu ...
- 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞
3578: GTY的人类基因组计划2 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 367 Solved: 159[Submit][Status][ ...
- 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞
2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 70 Solved: 24[Submit][Status][D ...
- SCOI 2013 密码 & 乱搞
题意: Fish 是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息:1. 该密 ...
随机推荐
- linux 磁盘空间被占满但找不到目标文件的问题处理 lsof命令
lsof简介 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能. 直接输入lsof部分输出为: 每行 ...
- NLTK 统计词频
import nltk Freq_dist_nltk = nltk.FreqDist(list) for k,y in Freq_dist_nltk: print str(k),str(y)
- PhoenixFD插件流体模拟——UI布局【Simulation】详解
前言 之前使用RealFlow做流体模拟,但是总得和3ds导来导去,略显麻烦,特意学习PhoenixFD插件,直接在3ds中进行流体模拟.若读者有更好的流体模拟方法,欢迎在评论区交流. 原文地址:ht ...
- 错误:libstdc++.so.6: wrong ELF class
1.安装mysql的时候报错缺少GLIBCXX_3.4.15 2.按照网上的下载了libstdc++.so.6.0.17 放到/usr/lib64 下 删除之前的libstdc++.so.6的链接 重 ...
- 【Spring】浅谈spring为什么推荐使用构造器注入
一.前言 Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP,平时使用最多的就是其中的IOC,我们通过将组件交由S ...
- vba文件对比并高亮显示
每月月底要和人事要离职人员名单,并账号列表里删除已经离职人员的账号,如下代码通过将账号列表与人事发来的离职清单进行对比,高亮找出离职人员的账号,并进行删除. Sub DeleteMain() Dim ...
- sql-多表查询
一:外连接 1.左外连接(left join) select * from A left join B on A.id=B.a_id 结果如下 很明显,A表的所有数据都显示出来了 ...
- JS中的offset scroll event client
一.offset 一般用来检测盒子的偏移.位移,都是只读属性,不能赋值 offsetWidth和offsetHeight表示的是:调用者盒子的宽和高,包括盒子自身的padding和border off ...
- Mysql数据库 (JTree应用)
package com.databases.jtree; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt ...
- 搭建Fabric网络(三)artifacts是怎么生成的:cryptogen和configtxgen
在first-network里,./byfn.sh generate可以生成artifacts文件. generate参数其实是使用了cryptogen和configtxgen这两个工具,这两个工具分 ...