求助 样例一直在走就是不停
查看原帖
求助 样例一直在走就是不停
530225
luogu530225楼主2021/10/24 09:58
#include<iostream>
#include<cstdio>
using namespace std; 
bool p[11][11][4][11][11][4]={0}; 
int &walk(int &xiang,char x[12][12],int &xx,int &yy){
	 if(xiang==1&&x[xx][yy-1]!='*')yy--;else if(xiang==2&&x[xx+1][yy]!='*')xx++;
else if(xiang==3&&x[xx][yy+1]!='*')yy++;
else if(xiang==4&&x[xx-1][yy]!='*')xx--;
else if(xiang==1&&x[xx][yy-1]=='*')xiang =2;
else if(xiang==2&&x[xx+1][yy]=='*')xiang =3;
else if(xiang==3&&x[xx][yy+1]=='*')xiang =4;
else if(xiang==4&&x[xx-1][yy]=='*')xiang =1;
}
int main(){
	//freopen("cow.in","r",stdin);
	char a[12][12];//地图 
	int f=1,c=1,fx,fy,cx,cy,jishu=0;//方向,1上 2右 3下 4左 ,位置 
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			cin>>a[i][j];
			if(a[i][j]=='F')
			fx=i,fy=j;
		else if(a[i][j]=='C')
			cx=i,cy=j;
		}
	}
	for(int i=0;i<=11;i++)a[i][0]=a[0][i]=a[i][11]=a[11][i]='*';
    while(1){
		if(fx==cx&&fy==cy){
		cout<<jishu;
		break;
		}
		jishu++;
		walk(c,a,cx,cy);
		walk(f,a,fx,fy);        	//cout<<cx<<" "<<cy<<" "<<fx<<" "<<fy<<" ";
	}
	return 0;
}
2021/10/24 09:58
加载中...