RT,30分求助
  • 板块P1605 迷宫
  • 楼主Dream_ac
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/8/7 10:32
  • 上次更新2023/10/27 16:39:20
查看原帖
RT,30分求助
739380
Dream_ac楼主2022/8/7 10:32
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,m,t; 
int sx,sy,fx,fy,tx,ty,ans=0,dx,dy;
int v[20][20];
void dfs(int idx,int idy)
{
    if(idx==fx&&idy==fy) 
    {
        ans++;
        return;
    }
    for(int i=0;i<4;i++) 
    {
        int x=idx+dx;
        int y=idy+dy;
        if(x>n||x<1||y==m||y<1)
        {
            continue;
         } 
         if(v[x][y]==0)
         {
             v[x][y]=1;
             dfs(x,y);
             v[x][y]=0; //回溯,擦脚印 
          } 
    }
 } 
int main()
{
   cin>>n>>m>>t;
   cin>>sx>>sy>>fx>>fy;
   for(int i=1;i<=t;i++)
   {
     cin>>tx,ty;
     v[tx][ty]=1;
   }
   v[sx][sy]=1;
   dfs(sx,sy);
   cout<<ans<<endl;
   return 0; 
}
2022/8/7 10:32
加载中...