求教一下大佬帮忙看看出了什么问题(全RE)
查看原帖
求教一下大佬帮忙看看出了什么问题(全RE)
153533
one_leukocyte楼主2022/2/24 17:57
#include<bits/stdc++.h>
using namespace std;
char a[12][12];
int x,y,m,n,step,na=1,nb=1;
void run(int&a1,int&a2,int&face){
if(face==1){
	if(a[a1-1][a2]!='*')
		swap(a[a1][a2],a[a1-1][a2]);
	else
		face=2;
	return;
}
if(face==2){
	if(a[a1][a2+1]!='*')
		swap(a[a1][a2],a[a1][a2+1]);
	else
		face=3;
	return;
}
if(face==3){
	if(a[a1+1][a2]!='*')
		swap(a[a1][a2],a[a1+1][a2]);
	else
		face=4;
	return;
}
if(face==4){
	if(a[a1][a2-1]!='*')
		swap(a[a1][a2],a[a1][a2-1]);
	else
		face=1;
	return;
}
}
int main(){
	for(int i=0;i<12;i++)
		for(int j=0;j<12;j++)
			a[i][j]='*';
	for(int i=1;i<11;i++)
		for(int j=1;i<11;j++)
		{
			cin>>a[i][j];
			if(a[i][j]=='C'){
				x=i;
				y=j;
			}
			if(a[i][j]=='F'){
				m=i;
				n=j;
			}	
		}
	//卡其脱离太
	while(1){
		run(x,y,na);
		run(m,n,nb);
		step++;
		if(x==m&&y==n){
			cout<<step<<endl;
			return 0;
		} 
        if(step==100000){
        cout<<0;
        return 0;
        }
		}
}

或者说我的思路有什么问题,求解答(拜谢)

2022/2/24 17:57
加载中...