GeXXGe 2023-07-19 10:54 采纳率: 0%
浏览 12

#关于c++的问题,请各位专家解答!

#大佬求助
Labyrinth CF1063B

https://www.luogu.com.cn/problem/CF1063B

两组测试都过了,为什么没分..

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int a[2050][2050]={1};
bool b[2050][2050]={0};
int n,m,r,c,x,y;
int ag(int o,int p)
{
    if(b[o][p]==1)
    {
//        cout<<"重复"<<o<<' '<<p<<endl;
        return 0;
    }
    return 1;
}
void search(int rr,int cc,int xx,int yy)
{
    if(rr==0||rr==n+1||cc==0||cc==m+1)
    {
        return ;
    }
    if(a[rr-1][cc]==0&&ag(rr-1,cc)==1)
    {
//        cout<<"上"<<rr<<' '<<cc<<endl;
        b[rr-1][cc]=1;
        search(rr-1,cc,xx,yy);
    }
    if(a[rr+1][cc]==0&&ag(rr+1,cc)==1)
    {
//        cout<<"下"<<rr<<' '<<cc<<endl;
        b[rr+1][cc]=1;
        search(rr+1,cc,xx,yy);
    }
    if(xx&&ag(rr,cc-1))
    {
        if(a[rr][cc-1]==1)
        {
//            cout<<"墙"<<rr<<' '<<cc<<endl;
        }
        else
        {
            b[rr][cc-1]=1;
//            cout<<"左"<<rr<<' '<<cc<<endl;
            search(rr,cc-1,xx-1,yy);
        }
    }
    else
    {
//        cout<<"x=0"<<rr<<' '<<cc<<endl;
        if(a[rr-1][cc]==0&&ag(rr-1,cc)==1)
        {
//            cout<<"上"<<rr<<' '<<cc<<endl;
            b[rr-1][cc]=1;
            search(rr-1,cc,xx,yy);
        }
        if(a[rr+1][cc]==0&&ag(rr+1,cc)==1)
        {
//            cout<<"下"<<rr<<' '<<cc<<endl;
            b[rr+1][cc]=1;
            search(rr+1,cc,xx,yy);
        }
    }
    if(yy&&ag(rr,cc+1))
    {
        if(a[rr][cc+1]==1)
        {
//            cout<<"墙"<<rr<<' '<<cc<<endl;
        }
        else
        {
            b[rr][cc+1]=1;
//            cout<<"右"<<rr<<' '<<cc<<endl;
            search(rr,cc+1,xx,yy-1);
        }
    }
    else
    {
//        cout<<"y=0"<<rr<<' '<<cc<<endl;
        if(a[rr-1][cc]==0&&ag(rr-1,cc)==1)
        {
//            cout<<"上"<<rr<<' '<<cc<<endl;
            b[rr-1][cc]=1;
            search(rr-1,cc,xx,yy);
        }
        if(a[rr+1][cc]==0&&ag(rr+1,cc)==1)
        {
//            cout<<"下"<<rr<<' '<<cc<<endl;
            b[rr+1][cc]=1;
            search(rr+1,cc,xx,yy);
        }
    }
}
int main()
{
    cin>>n>>m;
    cin>>r>>c;
    cin>>x>>y;
    getchar();
    char cc;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cc=getchar();
            if(cc=='.')
            {
                a[i][j]=0;
            }
            else if(cc=='*')
            {
                a[i][j]=1;
            }
            if(j==m)
            {
                getchar();
            }
//            cout<<i<<' '<<j<<"---"<<a[i][j]<<endl;
        }
    }
//    for(int i=1;i<=n;i++)
//    {
//        for(int j=1;j<=m;j++)
//        {
//            cout<<a[i][j];
//        }
//        cout<<endl;
//    }
    b[r][c]=1;
    search(r,c,x,y);
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(b[i][j])
            {
                ans++;
            }
//            cout<<b[i][j]<<' ';
        }
//        cout<<endl;
    }
    cout<<ans<<endl;
    return 0;
}

  • 写回答

1条回答 默认 最新

  • 爱编程的小芒果 2023-07-19 10:59
    关注

    你可以看看洛谷这题的讲解:
    网址:https://www.luogu.com.cn/problem/solution/CF1063B

    评论

报告相同问题?

问题事件

  • 创建了问题 7月19日

悬赏问题

  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统