全WA了,求助!!!
查看原帖
全WA了,求助!!!
737157
Rose_J楼主2022/7/26 12:40

这是我的代码,求dalao看看!

code:

#include<bits/stdc++.h> 
using namespace std;
int t,n,l,val[100005];
long long x[100005],y[100005],z[100005];
long long v,q;
double d(int a,int b){
    	double x1=(double)x[a];
	double x2=(double)x[b];
	double y1=(double)y[a];
	double y2=(double)y[b];
    	double z1=(double)z[a];
	double z2=(double)z[b];
    	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2));
}
void f(int q){
    if(z[q]+q>=v){
	l=1;
	return;
}
    val[q]=1;
    for(int i=1;i<=n;i++){
        if(!val[i]&&d(q,i)<=2*q){
		f(i);
	}
    }
}
int main(){
    cin>>t;
    for(int i=1;i<=t;i++){
        memset(x,-1,sizeof x);
		memset(y,-1,sizeof y);
        memset(z,-1,sizeof z);
		memset(val,0,sizeof val);
        cin>>n>>v>>q;
        for(int i=1;i<=n;i++){
            cin>>x[i]>>y[i]>>z[i];
        }
        for(int i=1;i<=n;i++){
            if(!val[i]&&z[i]-q<=0){
            	f(i);
			}
            if(l==1){
				cout<<"Yes"<<endl;
				break;
			}
        }
        if(l==0){
			cout<<"No"<<endl;
			l=0;
		}
    }
    return 0;
}

~~代码改的有点乱~~~~

看了好几遍还是没检查出来!
2022/7/26 12:40
加载中...