Java教程

[2017年NOIP提高组] 奶酪

本文主要是介绍[2017年NOIP提高组] 奶酪,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

函数判断是否相邻:直径与距离

在进行深搜,标记路过的,若不是且相邻,再调用

注意:第一个和底层需独立判断

#include<bits/stdc++.h>
using namespace std;
long long t,n,h,r,i,j,b[1005],falg,bj;
struct ww{
long long x,y,z;
}ab[1005];
bool pd(int a,int b){
long long d=(ab[a].x-ab[b].x)*(ab[a].x-ab[b].x)+(ab[a].y-ab[b].y)*(ab[a].y-ab[b].y)+(ab[a].z-ab[b].z)*(ab[a].z-ab[b].z);
if(r*r*4>=d) return 1;
else return 0;
}
void ss(int nn){
if(ab[nn].z+r>=h){
falg=1;
return;
}
if(bj>=n) return;
for(int j=1;j<=n;j++){
if(pd(nn,j)==1&&b[j]!=0&&nn!=0||(nn==0&&ab[j].z<=r)){
b[j]=0;
bj++;
ss(j);
}
if(falg==1) return;
}
}
int main(){
cin>>t;
for(i=1;i<=t;i++){
bj=0;
cin>>n>>h>>r;
falg=0;
for(int ij=1;ij<=n;ij++){
b[ij]=1;
cin>>ab[ij].x>>ab[ij].y>>ab[ij].z;
}
ss(0);
if(falg==0){
cout<<"No"<<endl;
}
else{
cout<<"Yes"<<endl;
}
}
}

这篇关于[2017年NOIP提高组] 奶酪的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!