求助!用结构体为啥死卡30分
查看原帖
求助!用结构体为啥死卡30分
679459
tiny_cat楼主2023/10/4 21:31
#include<bits/stdc++.h>
using namespace std;
int n,t;
int h,r;
struct node{
	int x,y,z;
}bal[2005];
bool flag[2005],fl;
bool p(int i,int j){
	double l=(bal[i].x-bal[j].x)*(bal[i].x-bal[j].x)+(bal[i].y-bal[j].y)*(bal[i].y-bal[j].y)+(bal[i].z-bal[j].z)*(bal[i].z-bal[j].z);
	return l<=4*r*r;
}
void dfs(int n,double b){
	if(fl)return;
	if(b<=0){
		fl=1;
		return;
	}
	flag[n]=1;
	for(int i=1;i<=n;i++){
		if(!flag[i]&&p(n,i)){
			dfs(i,min(b,(double)(bal[i].z-r));
		}
	}
}
int main(){
	cin>>t;
	while(t--){
		fl=0;
		cin>>n>>h>>r;
		memset(flag,0,sizeof(flag));
		for(int i=1;i<=n;i++){
			cin>>bal[i].x>>bal[i].y>>bal[i].z;
		}
		for(int i=1;i<=n;i++){
			if(bal[i].z+r>=h){
				dfs(i,bal[i].z-r);
			}
		}
		if(fl)cout<<"Yes"<<endl;
		if(!fl)cout<<"No"<<endl;	
	}
	return 0;
}
2023/10/4 21:31
加载中...