错在很细的地方
查看原帖
错在很细的地方
871892
M78cong楼主2023/5/2 01:08

调了2小时,最后发现是

	for(int i=1;i<=3;i++){ //单纯移动 
		if(x.dis==1){  //向下 
			xx.x+=i;
			if(xx.x>=N) break;  //越界  
			if(a[xx.x][xx.y]==1) break;  //被挡住了  
			if(xx.step>=d[xx.x][xx.y][xx.dis]) continue;  //排除无效的点 
			else d[xx.x][xx.y][xx.dis]=xx.step;
			q.push(xx);
        xx.x-=i;
		}

中的continue前面没有把xx.x变为初始值,样例还过了拿了80分,咦,做题目还是要细致啊

2023/5/2 01:08
加载中...