1 条题解

  • 0
    @ 2025-10-8 16:51:39
    #include<bits/stdc++.h>
    using namespace std;
    int dx[2]={1,0};
    int dy[2]={0,1};
    int ans,n,m,k;
    bool v[25][25];
    void dfs(int x,int y)
    {
        if(x==n&&y==m){ans++;return; }
        for(int i=0;i<=1;i++)
        {
            int xx=x+dx[i],yy=y+dy[i];
            if(v[xx][yy]==0&&xx>=1&&xx<=n&&yy>=1&&yy<=m)
            {
                v[xx][yy]=1;
                dfs(xx,yy);
                v[xx][yy]=0;
            }
        }
    }
    int main()
    {
        scanf("%d%d%d",&n,&m,&k);
        memset(v,0,sizeof(v));
        for(int i=1;i<=k;i++)
        {
            int x,y;scanf("%d%d",&x,&y);
            v[x][y]=1;
        }
        ans=0;dfs(1,1);
        printf("%d\n",ans);
        return 0;
    }
    
    • 1

    信息

    ID
    685
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    递交数
    177
    已通过
    61
    上传者