博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
百度之星 / 初赛第二场 B题
阅读量:6426 次
发布时间:2019-06-23

本文共 1857 字,大约阅读时间需要 6 分钟。

怎么说呢,只能说自己还不够熟练,能力还不够,细心成都还不够吧。这样的二分题目在POJ的训练计划里面有类似的题目,自己也是都刷了,可是在调这道题目的时候废了老大的尽了,比赛结束后听polla的一句<t才属于同一类,才知道自己怎么犯了这么二逼的错误呢!唉。。。。自己给弄成>t了。改过后终于出来了。

思路:找出最大的t,如果按t分类,可分出1组,按0分类分出n组,二分枚举t然后利用并查集判断分出多少种类。

#include 
#include
#include
#define maxn 1007using namespace std;const double eps = 1e-8;int n,m,k;double t;int f[maxn];struct node{ double x,y,z;}p[maxn];int cmp(double x){ if (x > eps) return 1; else if (x < -eps) return -1; else return 0;}int find(int x){ if (x != f[x]) f[x] = find(f[x]); return f[x];}void Union(int x,int y){ x = find(x); y = find(y); if (x != y) f[y] = x;}double getse(int a,int b){ double x = p[b].x - p[a].x; double y = p[b].y - p[a].y; double z = p[b].z - p[a].z; return (x*x + y*y + z*z);}//并查集判断是否属于同一类int getnum(double tx){ int i,j; for (i = 0; i < n; ++i) f[i] = i; for (i = 0; i < n; ++i) { for (j = i + 1; j < n; ++j) { double tmp = getse(i,j); if (cmp(tmp - tx) < 0) //就是这里的二逼错误让我调了很长时间 Union(i,j); } } int ct = 0; for (i = 0; i < n; ++i) { if (i == find(i)) ct++; } return ct;}int main(){ int i,j; t = 0; scanf("%d%d",&n,&k); for (i = 0; i < n; ++i) scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z); double pt; for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) { if (i != j) { pt = getse(i,j); if (pt > t) t = pt; } } } //printf("%lf\n",t); double l = 0; double r = t; double mid = 0; //二分枚举 while (cmp(l - r) < 0) { mid = (l + r)/2.0; int tt = getnum(mid); //printf(">> %lf %lf %lf %d\n",l,r,mid,tt); if (tt >= k) l = mid; else r = mid; } printf("%.6lf\n",l);}

  

转载地址:http://wlyga.baihongyu.com/

你可能感兴趣的文章
使用Fuel安装OpenStack juno之三使用OpenStack创建云主机和Volume
查看>>
zabbix安装源
查看>>
Eclipse+kafka集群 实例源码
查看>>
Vijos 1067Warcraft III 守望者的烦恼
查看>>
SQL语句
查看>>
LinkedList
查看>>
Python number
查看>>
【Lv1-Lesson008】A Guide to Birthdays
查看>>
MySQL_PHP学习笔记_2015.04.19_PHP连接数据库
查看>>
关于RFC
查看>>
juery 选择器 选择多个元素
查看>>
【新手向】TensorFlow 安装教程:RK3399上运行谷歌人工智能
查看>>
Oracle Net Configuration(监听程序和网络服务配置)
查看>>
c语言_判断例子
查看>>
ubuntu重启不清除 /tmp 设置
查看>>
面向对象
查看>>
JSON
查看>>
SAP发布wbservice,如果有权限管控的话,需要给这个webservice加权限
查看>>
16.Python网络爬虫之Scrapy框架(CrawlSpider)
查看>>
stm 常用头文件
查看>>