感觉毫无破绽啊,怎么不是TLE就是WA??
查看原帖
感觉毫无破绽啊,怎么不是TLE就是WA??
856517
mikisayaka楼主2023/2/19 20:59

状态完全相同就是死循环,移动时只操作坐标,移动用数组模拟,都考虑到了啊?怎么就是不行呢?


int main()
{
	int time=0,movex[4]={-1,0,1,0},movey[4]={0,1,0,-1},dic1=0,dic2=0,i,j,x1,x2,x10,x20,y1,y2,y20,y10,dic10=0,dic20=0;
	char a[12][12]={'\0'};
	for(i=1;i<=10;i++)
	{
		for(j=1;j<=10;j++)
			scanf("%c",&a[i][j]);
		getchar();
	}
	for(i=1;i<=10;i++)
		for(j=1;j<=10;j++)
		{	
			if(a[i][j]=='F')
			{
				x10=x1=i;
				y10=y1=j;
			}
			else if(a[i][j]=='C')
			{
				x20=x2=i;
				y20=y2=j;
			}
		}
		
	while(1)
	{
			switch(a[x1+movex[dic1]][y1+movey[dic1]])
			{
				case '.':
					x1+=movex[dic1];y1+=movey[dic1];break;
				case '*':case '\0':
					dic1++;
					dic1%=4;
					break;
			}
			switch(a[x2+movex[dic2]][y2+movey[dic2]])
			{
				case '.':
					x2+=movex[dic2];y2+=movey[dic2];break;
				case '*':case '\0':
					dic2++;
					dic2%=4;
					break;
			}
			time++;
			if(x1==x2&&y1==y2)
			{
				cout<<time;
				return 0;
			}
			if(x1==x10&&x20==x2&&y1==y10&&y20==y2&&dic1==dic10&&dic2==dic20)
			{
				cout<<"0";
				return 0;
			}
			
	}	
} 
2023/2/19 20:59
加载中...