为什么一到十九行就崩溃呢????
  • 板块学术版
  • 楼主pencil
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/12/15 12:47
  • 上次更新2023/11/3 22:00:53
查看原帖
为什么一到十九行就崩溃呢????
137723
pencil楼主2021/12/15 12:47
#include<iostream>
#include<cmath>
using namespace std;
#define itn int
bool a[60][60];
int dx[5]={0,0,1,0,-1},dy[5]={0,1,0,-1,0};
itn minn=1e9,fx,fy;int n,m;
int ads(int x){
	return x>0?x:-x;
}
void dfs(itn nx,int ny,int dir,int was){
	if(nx<0||nx>m||ny<0||ny>n||a[nx][ny])
	return;
	if(nx==fx&&ny==fy){
		minn=min(minn,was);
		return;
	}
	for(int i=1;i<=4;i++){
		for(int j=1;j<=3;j++){//19
			if(i==-1||j==-1){
				cout<<"!";
			}
			dfs(nx+dx[i]*j,ny+dy[i]*j,i,was+ads(dir-i)+j);//23	
		}
	}
	return;
}
int main() {
	
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>a[i][j];
		}
	}
	char d;
	int x,y;
	cin>>x>>y>>fx>>fy>>d;
	int dir;
	switch(d){
		case 'E':dir=2;break;
		case 'W':dir=4;break;
		case 'S':dir=3;break;
		case 'N':dir=1;break;
	}
	dfs(x,y,dir,0);
	cout<<minn; 
	return 0;
}

RT有时候还在23行崩溃

2021/12/15 12:47
加载中...