3个写法(程序中的3行注释),为什么结果不一样?谢谢!
  • 板块P1605 迷宫
  • 楼主bonjour007
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/9/29 13:24
  • 上次更新2024/9/29 18:23:09
查看原帖
3个写法(程序中的3行注释),为什么结果不一样?谢谢!
1101890
bonjour007楼主2024/9/29 13:24

#include<bits/stdc++.h>
using namespace std;

const int N=6;

int m, n, t, sx, sy, fx, fy, a, b, ans;
int g[N][N];
int dx[4]={-1, 0, 1,  0};
int dy[4]={ 0, 1, 0, -1};


void mydfs(int x, int y)
{
	if (x<1||x>n||y<1||y>m) 
	{
		return;
	}
	if (x==fx && y==fy)  
		{ans++; 
		
		return;}
	for (int i=0;i<4;i++)
	{
		int a=x+dx[i], b=y+dy[i];    
		if (g[a][b]==1) continue; //这个写法3个Wrong Answer,
		//这个满分: if (g[a][b]!=0) continue;
		//这个满分: if (g[a][b]==0)  
		{
			g[a][b]=1; 
			mydfs(a,b);  
			g[a][b]=0;  
		}
	}
}

int main()
{
	cin>>n>>m>>t; 
	cin>>sx>>sy>>fx>>fy; 
	for(int i=0; i<t; i++)
	{
		cin>>a>>b; g[a][b]=1;  
	}
	g[sx][sy]=1; 
	mydfs(sx,sy); 
	cout<<ans;
	return 0;
}


2024/9/29 13:24
加载中...