求助,测试点8下载了,结果正确,但是还是WA,80分
查看原帖
求助,测试点8下载了,结果正确,但是还是WA,80分
1040131
WangZhaoyun0215楼主2024/5/25 13:54
#include <iostream>

using namespace std;

int n,m,t,sx,sy,fx,fy,ans;
int a1[6][6] = {0};  //a1为1说明没有障碍
int a2[6][6] = {0};  //a2为1说明以前走过
int walkx[4] = {0,0,1,-1};
int walky[4] = {1,-1,0,0};

void dfs(int x,int y)
{
    if(x == fx && y == fy)  //到达终点了
    {
        ans++;
        return;
    }
        for(int i = 0;i < 4;i++)
        {
            if(a2[x + walkx[i]][y + walky[i]] == 0 && a1[x + walkx[i]][y + walky[i]] == 1)  //没有走过并且没有障碍
            {
                a2[x][y] = 1;
                dfs(x + walkx[i],y + walky[i]);
                a2[x][y] = 0;
            }
        }
}

int main()
{
    scanf("%d%d%d%d%d%d%d",&n,&m,&t,&sx,&sy,&fx,&fy);
    int a,b;
    for(int i = 1;i <= n;i++)
        for(int j = 1;j <= m;j++)
            a1[i][j] = 1;
    for(int i = 0;i < t;i++)
    {
        scanf("%d%d",&a,&b);
        a1[a][b] = 0;  //输入障碍
    }
    dfs(sx,sy);
    cout << ans;
    return 0;
}
2024/5/25 13:54
加载中...