并查集。

判相切或相交的时候可以两边同时平方,就不需要double和开根号了。

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
#include<ctime>
#define LL long long int
#define inf 0x3f3f3f3f
#define pw2(x) ((x)*(x))
using namespace std;
const int maxn=; LL rd(){
LL x=;char c=getchar();int neg=;
while(c<''||c>''){if(c=='-') neg=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-'',c=getchar();
return x*neg;
} LL pos[maxn][],r,h;
int fa[maxn],N; int getf(int x){return x==fa[x]?x:fa[x]=getf(fa[x]);}
void add(int a,int b){fa[getf(b)]=getf(a);} inline bool judge(LL x1,LL y1,LL z1,LL x2,LL y2,LL z2){
return pw2(x1-x2)+pw2(y1-y2)+pw2(z1-z2)<=pw2(r)*;
} int main(){
int i,j,k;
for(int t=rd();t;t--){
N=rd(),h=rd(),r=rd();
for(i=;i<=N+;i++) fa[i]=i;
for(i=;i<=N;i++){
pos[i][]=rd(),pos[i][]=rd(),pos[i][]=rd();
if(fabs(pos[i][])<=r) add(,i);
if(fabs(pos[i][]-h)<=r) add(N+,i);
}for(i=;i<N;i++){
for(j=i+;j<=N;j++){
if(judge(pos[i][],pos[i][],pos[i][],pos[j][],pos[j][],pos[j][])) add(i,j);
}
}
if(getf()==getf(N+)) printf("Yes\n");
else printf("No\n");
}
return ;
}

NOIp2017D2T1(luogu3968) 奶酪 (并查集)的更多相关文章

  1. #C++初学记录(奶酪#并查集)

    原题目:牛客网 题目描述 : 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞.我们可以在这块奶酪中建立空间坐标系, 在坐标系中,奶酪的下表面为 ...

  2. NOIP2017 Day2 T1 奶酪(并查集)

    题目描述 现有一块大奶酪,它的高度为 hhh ,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形空洞.我们可以在这块奶酪中建立空间坐标系,在坐标系中, 奶酪的下表面为z=0z ...

  3. 洛谷 P3958 奶酪 并查集

    目录 题面 题目链接 题面 题目描述 输入输出格式 输入格式 输出格式: 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P3958 奶酪 题面 题目描述 现有一块大奶酪 ...

  4. 洛谷P3958 奶酪 并查集

    两个空洞可互达当且仅当两个空洞相切,即球心距离小于等于球的直径. 一一枚举两个可互达的空洞,并用并查集连起来即可. Code: #include<cstdio> #include<c ...

  5. ZH奶酪:【数据结构与算法】并查集基础

    1.介绍 并查集是一种树型数据结构,用于处理一些不相交集合的合并问题. 并查集主要操作有: (1)合并两个不相交集合: (2)判断两个元素是否属于同一个集合: (3)路径压缩: 2.常用操作 用fat ...

  6. 2018.11.02 NOIP模拟 飞越行星带(最小生成树/二分+并查集)

    传送门 发现题目要求的就是从下到上的瓶颈路. 画个图出来发现跟去年noipnoipnoip提高组的奶酪差不多. 于是可以二分宽度+并查集检验,或者直接求瓶颈. 代码

  7. 浅谈并查集&种类并查集&带权并查集

    并查集&种类并查集&带权并查集 前言: 因为是学习记录,所以知识讲解+例题推荐+练习题解都是放在一起的qvq 目录 并查集基础知识 并查集基础题目 种类并查集知识 种类并查集题目 并查 ...

  8. BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]

    4199: [Noi2015]品酒大会 UOJ:http://uoj.ac/problem/131 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 ...

  9. 关押罪犯 and 食物链(并查集)

    题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"( ...

随机推荐

  1. HNOI2019 多边形 polygon

    HNOI2019 多边形 polygon https://www.luogu.org/problemnew/show/P5288 这题镪啊... 首先堆结论: 显然终止状态一定是所有边都连向n了 根据 ...

  2. Zabbix监控系统部署:源码安装

    1. 概述1.1 基础环境2. 部署过程2.1 创建用户组2.2 下载源码解压编译安装2.2.1 下载源码解压2.2.2 YUM安装依赖环境2.2.3 编译安装最新版curl2.2.4 更新GNU构建 ...

  3. .NETCore_初探

    1. Core默认的服务注册 Statup文件(rogram类型中创建 WebHost时使用的)中有俩个方法: Configure和ConfigureServices(将服务放置到容器里面) publ ...

  4. better-scroll的参数和方法

    格式:let obj = new BScroll(object,{[option1,],.,.}); 注意,如果在某一个组件内创建了一个BScroll的实例,在组件生命周期结束前要注意调用destro ...

  5. M2事后会议报告

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? Beta阶段的爬虫需要更稳定.更高效.操作更便捷.在定义中爬取对性能和功能的要求高,典型用户和场景 ...

  6. Linux内核第八节 20135332武西垚

    第一种分类: I/O-bound:频繁进行I/O,并且需要花费很多时间等待I/O完成 CPU-bound:计算密集,需要大量的CPU时间进行运算 第二种分类: 批处理进程:不必与用户交互,常在后台进行 ...

  7. Oracle系列(一): Oracle数据恢复

     Oracle数据恢复 在使用Oracle的时候,突然一部小心update或者delete全部数据后怎么办? select * from table as of timestamp to_timest ...

  8. 读后感for《一个程序员的生命周期》

    我是村里走出来的孩子,妈妈说我也许是家里唯一一个大学生了,家里从选专业开始也赋予我厚望.说实话,上大学是父母经济压力最大的时候.心疼,大概就是早上六七点起床,看到爸爸一夜没睡,带着倦容眼睛红红的还在工 ...

  9. SpringMVC 网站

    https://mp.weixin.qq.com/s/MLCIcQcevLBpZFOQce3DMQ

  10. php 历史版本下载地址

    PHP 3.* 版本到 7.* 版本下载地址 http://www.php.net/releases/