博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.27T4 奶酪 并查集
阅读量:6985 次
发布时间:2019-06-27

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

#2750 奶酪

 

描述
20171115214836_35930
输入

每个输入文件包含多组数据。

输入文件的第一行,包含一个正整数 T,代表该输入文件中所含的数据组数。

接下来是 T 组数据,每组数据的格式如下:

第一行包含三个正整数 n, h 和 r, 两个数之间以一个空格分开,分别代表奶酪中空 洞的数量,奶酪的高度和空洞的半径。

接下来的 n 行,每行包含三个整数 x、 y、 z, 两个数之间以一个空格分开, 表示空 洞球心坐标为(x, y, z)。

输出

输出文件包含 T 行,分别对应 T 组数据的答案,如果在第 i 组数据中, Jerry 能从下 表面跑到上表面,则输出“Yes”,如果不能,则输出“No”(均不包含引号)。

样例输入[复制]
3
2 4 1
0 0 1
0 0 3
2 5 1
0 0 1
0 0 4
2 5 2
0 0 2
2 0 4
样例输出[复制]
Yes
No
Yes
提示
20171115214845_92394

【数据规模与约定】

对于 20%的数据, n = 1, 1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。

对于 40%的数据, 1 ≤ n ≤ 8, 1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。

对于 80%的数据,1 ≤ n ≤ 1,000, 1 ≤ h , r ≤ 10,000,坐标的绝对值不超过 10,000。

对于 100%的数据, 1 ≤ n ≤ 1,000, 1 ≤ h , r ≤ 1,000,000,000, T ≤ 20,坐标的 绝对值不超过 1,000,000,000。

 

 

 

 

如果两个洞相连就在同一个并查集里面,同时上下也是相当于一个空洞,一起维护

然后维护一下就完了

code:

1 #include
2 #include
3 #include
4 using namespace std; 5 unsigned long long fa[10005]; 6 unsigned long long find(unsigned long long x){ 7 if(x!=fa[x])return fa[x]=find(fa[x]); 8 return fa[x]; 9 }10 void merge(unsigned long long x,unsigned long long y){11 unsigned long long f1=find(x),f2=find(y);12 if(f1!=f2){13 fa[f1]=f2;14 }15 }16 unsigned long long x[10000],y[10000],z[10000];17 unsigned long long sq(unsigned long long x){18 return x*x;19 }20 unsigned long long getdis(unsigned long long i,unsigned long long j){21 return sq(x[i]-x[j])+sq(y[i]-y[j])+sq(z[i]-z[j]);22 }23 int main(){24 unsigned long long T;25 cin>>T;26 while(T--){27 unsigned long long n,h,R;28 cin>>n>>h>>R;29 for(unsigned long long i=0;i<=n+1;i++)fa[i]=i;30 for(unsigned long long i=1;i<=n;i++){31 cin>>x[i]>>y[i]>>z[i];32 }33 for(unsigned long long i=1;i<=n;i++){34 for(unsigned long long j=1;j<=n;j++){35 if(i==j)continue;36 if(getdis(i,j)<=4*R*R){37 merge(i,j);38 }39 }40 }41 for(unsigned long long i=1;i<=n;i++){42 if(z[i]<=R)merge(i,0);43 if(z[i]+R>=h)merge(i,n+1);44 }45 if(find(0)==find(n+1)){46 cout<<"Yes"<<'\n';47 }48 else{49 cout<<"No"<<'\n';50 }51 }52 return 0;53 }

over

转载于:https://www.cnblogs.com/saionjisekai/p/9861283.html

你可能感兴趣的文章
java从字符串中提取数字
查看>>
Cardinality Feedback
查看>>
Android App Build System
查看>>
Python yield与实现
查看>>
终端中的乐趣:6个有趣的Linux命令行工具
查看>>
【技术贴】TOMCAT,Mysql提示Unknown column 'content' in 'fi
查看>>
EBS xml publisher中文乱码
查看>>
ext-anychart饼图呈现取自数据库中的数据
查看>>
Android深入浅出系列之服务机制—1.Android中的Service
查看>>
zz:彻底解决兼容性问题:Windows 7下载安装 Visual C++ 6.0(VC6)
查看>>
MVC、MVP以及Model2[上篇]
查看>>
面试总结,坚定自己的想法
查看>>
数据库隐式类型转换
查看>>
解决WCF调用多次之后没有响应的问题 转
查看>>
【BZOJ2318】【spoj4060】game with probability Problem 概率DP
查看>>
空格&amp;nbsp在不同浏览器中显示距离不一致问题解决方法
查看>>
Nancy 学习-身份认证(Basic Authentication) 继续跨平台
查看>>
分享5个主流的HTML5开发工具
查看>>
基于Ionic2的开源项目
查看>>
QEMU-KVM中的多线程压缩迁移技术
查看>>