求助!!!
  • 板块P1605 迷宫
  • 楼主Kevinyyds
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/8/16 16:05
  • 上次更新2023/10/27 15:08:23
查看原帖
求助!!!
555780
Kevinyyds楼主2022/8/16 16:05
#include<bits/stdc++.h>
using namespace std;
int n,m,t,fx,fy,tx,ty,sx,sy,x,y,s,dir[4][2]={0,1,0,-1,1,0,-1,0},mp[15][15],vis[15][15];
void dfs(int x,int y)
{
	if((x==fx)&&(y==fy))
	{
		s++;
		return ;
	}
	for(int i=0;i<4;i++)
	{
		tx=x+dir[i][0];
		ty=y+dir[i][1];
		if((mp[tx][ty]==0)&&(!vis[tx][ty]))
		{
			vis[tx][ty]=1;
			dfs(tx,ty);
			vis[tx][ty]=0;
		}
	}
}
int main()
{
	cin>>n>>m>>t;
	cin>>sx>>sy>>fx>>fy;
	for(int i=0;i<=n+1;i++)
	    mp[i][0]=mp[i][m+1]=1;
	for(int i=0;i<=m+1;i++)
	    mp[0][i]=mp[n+1][i]=1;
	while(t--)
	{
		cin>>x>>y;
		mp[x][y]=1;	
	}
	vis[sx][sy]=1;
	dfs(sx,sy);
	cout<<s;
	return 0;
}

WA50分,哪里错了?

2022/8/16 16:05
加载中...