c++只输出0,求助!!!
查看原帖
c++只输出0,求助!!!
828318
wssb1919810楼主2022/11/20 13:53
#include<bits/stdc++.h>
using namespace std;
char a[12][12];//上右下左
bool tpp[1919810];
int Fx,Fy,Cx,Cy,Cface,Fface,i,j,minute,tp;
void go(int x, int y, int dire, int h){
	if(dire==0){
		if(a[x-1][y]=='*') if(h==0) Fface=1; else Cface=1;
		else if(h==0) Fx--;
		else Cx--;
	}else if (dire==1){
		if(a[x][y+1]=='*') if(h==0) Fface=2; else Cface=2;
		else if (h==0) Fy++;
		else Cy++;
	}else if (dire==2){
		if(a[x+1][y]=='*') if(h==0) Fface=3; else Cface=3;
		else if (h==0) Fx++;
		else Cx++;
	}else{
		if(a[x][y-1]=='*') if(h==0) Fface=0; else Cface=0;
		else if (h==0) Fy--;
		else Cy--;
	}
}
bool end(){
	if(Fx==Cx&&Fy==Cy) return true;
	else return false;
}
int main(){
	for(i=0;i<=11;i++) a[i][0]='*',a[i][11]='*';
	for(i=1;i<=11;i++) a[0][i]='*',a[11][i]='*';
	for(i=1;i<11;i++) for(j=1;j<11;j++) cin>>a[i][j];
	while(end()){
		tp=Fx+Fy*10+Cx*100+Cy*1000+Fface*10000+Cface*40000;
		if(tpp[tp]){
			cout<<0<<endl;
			return 0;
		}
		tpp[tp]=1;
		go(Fx,Fy,Fface,0);
		go(Cx,Cy,Cface,1);
		minute++;
	}
	cout<<minute<<endl;
	return 0;
}
2022/11/20 13:53
加载中...