社区讨论
蒟蒻求助:为什么会编译失败
P3958[NOIP 2017 提高组] 奶酪参与者 6已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lobc3pzj
- 此快照首次捕获于
- 2023/10/29 18:34 2 年前
- 此快照最后确认于
- 2023/11/04 00:22 2 年前

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e3+5;
int T;
int n,h;
int x[N],y[N],z[N];
vector<int> g[N];
bool end[N];
inline ll sqr(int i){return (ll)i*(ll)i;}
inline ll dis(int i,int j){return sqr(x[i]-x[j])+sqr(y[i]-y[j])+sqr(z[i]-z[j]);}
bool inq[N];
bool bfs(int s)
{
queue<int> que;
que.push(s);
inq[s]=1;
while(!que.empty())
{
int u=que.front();
que.pop();
inq[u]=0;
int size=g[u].size();
for(int i=0;i<size;++i)
{
int v=g[u][i];
if(end[v]) return 1;
if(!inq[v])
{
inq[v]=1;
que.push(v);
}
}
}
return 0;
}
int main()
{
scanf("%d",&T);
while(T--)
{
memset(end,0,sizeof(end));
memset(inq,0,sizeof(inq));
g[0].clear();
int r;
scanf("%d%d%d",&n,&h,&r);
for(int i=1;i<=n;++i) scanf("%d%d%d",&x[i],&y[i],&z[i]);
for(int i=1;i<=n;++i)
{
g[i].clear();
if(z[i]<=r) g[0].push_back(i);
if(h-z[i]<=r) end[i]=1;
for(int j=1;j<=n;++j)
if(i!=j&&dis(i,j)<=sqr(2*r))
g[i].push_back(j);
}
if(bfs(0)) printf("Yes\n");
else printf("No\n");
}
return 0;
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...