怎就过不了样例?求助
查看原帖
怎就过不了样例?求助
347205
Conquer_1楼主2020/10/8 10:11
#include<iostream>
#include<queue>
#include<cmath>
#include<string>
#include<cstring>
using namespace std;
int t,n,h,r,x[100000],y[100000],z[100000],vis[10000000];
bool pd=0;
int dist(int a,int b,int c,int d,int e,int f)
{
	return sqrt(pow(a-d,2)+pow(b-e,2)+pow(c-f,2));
}
bool bfs(int p)
{
	memset(vis,0,sizeof(vis));
	queue <int > qu;
	int xx=0,yy=0,zz=0;
	qu.push(p);
	vis[p]=1;
	while(!qu.empty())
	{
		xx=x[qu.front()],yy=y[qu.front()],zz=z[qu.front()];
		qu.pop();
		if(yy+r>=h) return 1;
		for(int i=1;i<=n;i++)
		{
																		//
			if(dist(xx,yy,zz,x[i],y[i],z[i])<=2*r&&!vis[i])
			{
				vis[i]=1;
				qu.push(i);
			}
		}
	}
	return 0;
}
int main()
{
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		cin>>n>>h>>r;
		for(int j=1;j<=n;j++)
		{
			cin>>x[j]>>y[j]>>z[j];
		}
		pd=0;
		for(int l=1;l<=n;l++)
		{
			if(bfs(l))
			{
				pd=1;
				cout<<"Yes\n";
			}
		}
		if(!pd) cout<<"No\n";
	}
}

啊啊啊啊啊啊阿啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊嗷嗷嗷嗷嗷啊啊啊啊

2020/10/8 10:11
加载中...