求助!大佬求解为什么只有40分啊!求调
  • 板块P1605 迷宫
  • 楼主IridoYume
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/8/8 22:25
  • 上次更新2023/10/27 16:21:59
查看原帖
求助!大佬求解为什么只有40分啊!求调
752992
IridoYume楼主2022/8/8 22:25

Rt

#include<bits/stdc++.h>
using namespace std;
int m,n;
int sx,sy,fx,fy,T,tx,ty;
int ans=0;
int a[20][20]={1};
void dfs(int sx,int sy,int fx,int fy)
{

    if(sx==fx&&sy==fy)
    {
        ans++;
        return;
    }else if(a[sx][sy+1]==1)
    {
        a[sx][sy]=0;
        dfs(sx,sy+1,fx,fy);
        a[sx][sy+1]=1;
    }else if(a[sx][sy-1]==1)
    {
        a[sx][sy]=0;
        dfs(sx,sy-1,fx,fy);
        a[sx][sy-1]=1;
    }else if(a[sx+1][sy]==1)
    {
        a[sx][sy]=0;
        dfs(sx+1,sy,fx,fy);
        a[sx+1][sy]=1;
        
    }else if(a[sx-1][sy]==1)
    {
        a[sx][sy]=0;
        dfs(sx-1,sy,fx,fy);
        a[sx-1][sy]=1;
    }
}
int main()
{   
    memset(a,0,sizeof(a));
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            a[i][j]=1;
    cin>>T;
    cin>>sx>>sy>>fx>>fy;
    a[sx][sy]=0;
    while(T--)
    {
        cin>>tx>>ty;
        a[tx][ty]=0;
    }
    dfs(sx,sy,fx,fy);
    cout<<ans;
    return 0;
}
**谢谢大佬**
2022/8/8 22:25
加载中...