社区讨论
求助大佬,全wa,但为啥样例和第一个数据全过了
P3958[NOIP 2017 提高组] 奶酪参与者 1已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m1uiwdq7
- 此快照首次捕获于
- 2024/10/04 17:28 去年
- 此快照最后确认于
- 2024/10/04 19:49 去年
CPP
#include<bits/stdc++.h>
using namespace std;
int x[100000],y[100000],z[100000],ans=0;
bool vis[100000];
int n,h,r;
void dfs(int i){
if(z[i]+r>=h){
ans++;
return;
}
vis[i]=1;
for(int j=1;j<=n;j++){
if(!vis[j]&&r*2>=(double)sqrt(((double)x[i]-(double)x[j])*((double)x[i]-(double)x[j])+((double)y[i]-(double)y[j])*((double)y[i]-(double)y[j])+((double)z[i]-(double)z[j])*((double)z[i]-(double)z[j])))
dfs(j);
}
}
int main(){
int nnn;
cin>>nnn;
while(nnn>=0){
memset(vis,0,sizeof(vis));
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
memset(z,0,sizeof(z));
n=0;h=0;r=0;ans=0;
nnn--;
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++){
if(!vis[i]&&z[i]<=r) dfs(i);
if(ans!=0) {
cout<<"Yes"<<endl;
break;
}
}
if(ans==0) cout<<"No"<<endl;
memset(vis,0,sizeof(vis));
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
memset(z,0,sizeof(z));
n=0;h=0;r=0;ans=0;
}
return 0;
} ```
回复
共 1 条回复,欢迎继续交流。
正在加载回复...