社区讨论
c++80pts求条(玄关)
P3958[NOIP 2017 提高组] 奶酪参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjtrwzo
- 此快照首次捕获于
- 2025/11/04 08:22 4 个月前
- 此快照最后确认于
- 2025/11/04 08:22 4 个月前
c++80pts求条
CPP#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e3+5;
ll T,n,h,r,pd=0;
struct fk
{
ll x,y,z,d;
}a[N];
queue<fk> q;
int main(){
cin>>T;
for(int Tx=1;Tx<=T;Tx++){
cin>>n>>h>>r;
for(int i=1;i<=n;i++){
cin>>a[i].x>>a[i].y>>a[i].z;
a[i].d=0;
if(a[i].z<=r){
a[i].d=1;
q.emplace(a[i]);
if(a[i].z>=h-r&&!pd){
cout<<"Yes"<<endl;
pd=1;
}
}
}
while(q.size()&&!pd){
ll rx=q.front().x,ry=q.front().y,rz=q.front().z;
q.pop();
for(int i=1;i<=n;i++){
ll len=sqrt((rx-a[i].x)*(rx-a[i].x)+(ry-a[i].y)*(ry-a[i].y)+(rz-a[i].z)*(rz-a[i].z));//cout<<rx<<"|"<<ry<<" "<<rz<<endl;
if(len<=2*r&&a[i].d!=1){
a[i].d=1;
q.emplace(a[i]);
if(a[i].z>=h-r){
cout<<"Yes"<<endl;
pd=1;
break;
}
}
}
}
while(q.size()){
q.pop();
}
if(!pd){
cout<<"No"<<endl;
}
pd=0;
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...