求助,为什么两种相对的写法都能AC
  • 板块P1605 迷宫
  • 楼主ForMyDream
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/6/24 23:11
  • 上次更新2023/10/27 22:39:03
查看原帖
求助,为什么两种相对的写法都能AC
502758
ForMyDream楼主2022/6/24 23:11

RT,疑问点标在代码里了,悬赏1关注

#include<iostream>
using namespace std;
int map[6][6];
int d[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int n,m,t,ans,sx,sy,ex,ey;
void dfs(int x,int y){
	if (x==ex&&y==ey){
		ans++;
		return;
	} 
	for (int i=0;i<4;i++){
		int dx=x+d[i][0];
		int dy=y+d[i][1];
		if (dx>0&&dy>0&&dx<=n&&dy<=m&&map[dx][dy]!=0){
			//为什么换成 if (dx>0&&dy>0&&dx<=m&&dy<=n&&map[dx][dy]!=0)
			//也能AC,是两个可以等效 还是数据过水? 
			map[x][y]=0;
			dfs(dx,dy);
			map[x][y]=1;
		}
	}
}
int main(){
	cin>>n>>m>>t;
	cin>>sx>>sy>>ex>>ey;
	for (int i=1;i<=n;i++){
		for (int j=1;j<=m;j++){
			map[i][j]=1;
		}
	}
	for (int i=1;i<=t;i++){
		int x,y;cin>>x>>y;
		map[x][y]=0;
	}
	dfs(sx,sy);
	cout<<ans;
	return 0;
} 
2022/6/24 23:11
加载中...