社区讨论

70pts dfs求条

P3958[NOIP 2017 提高组] 奶酪参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhjntzpm
此快照首次捕获于
2025/11/04 05:36
4 个月前
此快照最后确认于
2025/11/04 05:36
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>

using namespace std;

struct node{
	int x,y,z;
};
int dist(node a,node b){
	return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
}
int T;
int n,h,r;
node lst[1005];
bool book[1005];
bool f=0;
void dfs(int x){
	if(lst[x].z+r>=h && !f){
		f=1;
		cout<<"Yes"<<endl;
		return ;
	}
	
	for(int i=1;i<=n;i++){
		if(!book[i] && i!=x && dist(lst[x],lst[i])<=2*r){
			book[i]=1;
			dfs(i);
		}
	}
	return ;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	
	cin>>T;
	while(T--){
		cin>>n>>h>>r;
		for(int i=1;i<=n;i++){
			cin>>lst[i].x>>lst[i].y>>lst[i].z;
		}
		
		for(int i=1;i<=n;i++){
			if(lst[i].z-r<=0){
				dfs(i);
				memset(book,0,sizeof(book));
				if(f){
					break;
				}
			}
		}
		if(!f){
			cout<<"No"<<endl;
		}
		f=0;
	}
}
WA #8,#9,#10

回复

2 条回复,欢迎继续交流。

正在加载回复...