40分求助!
查看原帖
40分求助!
574961
qingranshimanfen楼主2022/8/18 10:54

本来是4AC,6RE的,现在变成4AC,6WA了(QWQ)
代码如下:

#include<stdio.h>
struct dong
{
	int x,y,z;
}dd[1005];
int n,h,r,ji[1005][1005];

void csh()
{
	for(int i=0;i<=1003;i++)
	{
		for(int j=0;j<=1003;j++)
		{
			ji[i][j]=0;
		}
	}
}
bool sflj(int a,int b)//shi fou lian jie
{
	int x,y,z;
	x=dd[a].x-dd[b].x;
	y=dd[a].y-dd[b].y;
	z=dd[a].z-dd[b].z;
	x=x*x;
	y=y*y;
	z=z*z;
	if((x+y+z)<=(r*2)*(r*2)) 
	{
		return 1; 
	}
	return 0;
}
void bcj(int ngd)// bin cha ji
{
	for(int i=1;i<=ji[0][1];i++)
	{
		for(int j=1;j<=ji[i][0];j++)
		{
			if(sflj(ji[i][j],ngd))
			{
				ji[i][0]++;
				ji[i][ji[i][0]]=ngd;
				return ;
			}
		}
	}
	ji[0][1]++;
	ji[ji[0][1]][0]++;
	ji[ji[0][1]][ji[ji[0][1]][0]]=ngd;
}
void nailao()
{
	scanf("%d%d%d",&n,&h,&r);
	for(int i=1;i<=n;i++)
	{
		scanf("%d%d%d",&dd[i].x,&dd[i].y,&dd[i].z);
		bcj(i);
	}
	for(int i=1;i<=n;i++)
	for(int i=1;i<=ji[0][1];i++)
	{
		bool ding=0,di=0;
		for(int j=1;j<=ji[i][0];j++)
		{
			//printf("%d %d\n",i,j);
			if((dd[ji[i][j]].z+r)>=h)
			{
				ding=1;
				//printf("nmd1\n");
			 } 
			if(dd[ji[i][j]].z-r<=0)
			{
				di=1;
				//printf("nmd2\n");
			 } 
		}
		if(ding==1 && di==1)
		{
			printf("Yes\n");
		//	printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
			return ;
		}
	}
	printf("No\n");
//	printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
	return ;
}

int main()
{
	int T;
	scanf("%d",&T);
	for(int i=1;i<=T;i++)
	{
		nailao();
		csh();
	}
	return 0;
}

有神犇来看看孩子吗(一脸恳求)

2022/8/18 10:54
加载中...