求调
查看原帖
求调
1014175
mu531楼主2025/7/23 20:38
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,h,r,x[2001],y[2001],z[2001],fa[2001];
bool pan(int x1,int y1,int z1,int x2,int y2,int z2){
return ((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2)<=4*r*r);}
int findfa(int k){
	if(fa[k]==k)return k;
	else return findfa(fa[k]);
}
signed main(){
	int t;cin>>t;
	while(t--){
		cin>>n>>h>>r;
		for(int i=1;i<=n;i++)cin>>x[i]>>y[i]>>z[i];
		for(int i=1;i<=n;i++)fa[i]=i;bool qqq=0;
		for(int i=1;i<=n;i++)
			for(int j=i+1;j<=n;j++)
				if(findfa(i)!=findfa(j)&&pan(x[i],y[i],z[i],x[j],y[j],z[j]))
					fa[findfa(i)]=findfa(j);
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				if(pan(x[i],y[i],z[i],x[i],y[i],0)&&pan(x[j],y[j],z[j],x[j],y[j],h)&&findfa(i)==findfa(j))
					qqq=1;
		cout<<(qqq?"Yes":"No")<<endl;
	} 
	return 0;
}

2025/7/23 20:38
加载中...