【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. 该密 ...
随机推荐
- 大数据入门到精通14--hive 对 字符串的操作
一.基本操作 concat(string,string,string)concat_ws(string,string,string)select customer_id,concat_ws(" ...
- DRF的解析器和渲染器
解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentTy ...
- IDEA在运行Mybatis时找不到路径
idea的默认是不加载java文件下的所以我们要手动添加,加载java文件到pom文件下,在build中添加 <resources> <resource> <direct ...
- UI动画优化技巧
知乎上一篇比较好的文章,分享一下: tabs slide 内容过渡动画 好的动画会淡化页面直接的过度. 但更好的做法是使用连续的动画来来过度内容 当我们在设计交互式选项卡或弹出式菜单的时候,尝试将内容 ...
- angular模拟web API
现象:angular Cannot find module 'angular-in-memory-web-api'报错找不动“angular-in-memory-web-api”模块 解决:1.控制台 ...
- vi/vim 文字处理器常用命令
目录 vi 与vim vi 的三种模式 vi 光标移动 vi 搜索与替换 vi 删除 vi 复制 vi 粘贴 vi 其他 vi 进入编辑模式 vi 命令行命令 vim 附加功能 vi 与vim vi是 ...
- 面试简单整理之JVM
194.说一下 jvm 的主要组成部分?及其作用? JVM内存分为“堆”.“栈”和“方法区”三个区域,分别用于存储不同的数据. 堆内存用于存储使用new关键字所创建的对象: 栈内存用于存储程序运行时在 ...
- vue中的import、export、requre的区别
在es6之前js一直没有自己的模块语法,为了解决这种尴尬就有了require.js的出现.在es6发布之后js又引入了import的概念使得不清楚两者之间的区别的同学在实际使用过程中造成了自己的误解, ...
- python 练习1
题目: 1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定 #!/usr/bin/env python import sys,pickle account = {'wyh':123,'cl ...
- SpringMVC学习笔记:拦截器和过滤器
首先说明一下二者的区别: 1. 拦截器基于java的反射机制,而过滤器是基于函数回调 2. 拦截器不依赖于servlet容器,过滤器依赖servlet容器 3. 拦截器只能对action请求起作用,而 ...