A3,T7.求调
查看原帖
A3,T7.求调
1338267
HongWenCha楼主2025/7/24 20:03
#include<bits/stdc++.h>
#define int long long 
#define rg register
#define N 100010
using namespace std;
int t,n,h,r;
int x[N],y[N],z[N],p[N];
inline int w(int h){
	return h*h;
}
inline  int qe(int p1,int p2){
	return w(x[p1]-x[p2])+w(y[p1]-y[p2])+w(z[p1]-z[p2]);
}
inline int find(int x){
	if(p[x]==x)return x;
	return find(p[x]);
}
bool check(){
	for(rg int i=1;i<=n;i++)
		if(p[find(i)]==0&&h-z[i]<=r)return true;
	return false;
}
signed main()
{
	scanf("%lld",&t);
	while(t--){
		scanf("%lld%lld%lld",&n,&h,&r);
		for(rg int i=1;i<=n;i++){
			p[i]=i;
			scanf("%lld%lld%lld",&x[i],&y[i],&z[i]);
			if(z[i]<=r)p[i]=0;
			for(rg int j=1;j<i;j++){
				if(qe(i,j)<=w(r*2)){
					int d=find(i),h=find(j);
					if(d!=h)p[d]=h;
				}
			}
		}
		if(check())printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}
2025/7/24 20:03
加载中...