10分求助!感觉一毛一样,但提交就有问题
查看原帖
10分求助!感觉一毛一样,但提交就有问题
738466
Error_X楼主2023/7/21 16:46

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,m,p,cnt=0,dx[2]={1,0},dy[2]={0,1};
char maps[105][105];
void dfs(int li,int rj,int ck)
{
    if(ck==p){
        cnt++;
        return ;
    }
        for(int i=0;i<2;i++){
            int tx=li+dx[i];
            int ty=rj+dy[i];
           if(tx>=1&&ty>=1&&tx<=n&&ty<=m&&maps[tx][ty]=='.')
                dfs(tx,ty,ck+1);//只用两个方向就可以不重复
    }
}  
int main ()
{   
    cin>>n>>m>>p;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            cin>>maps[i][j];
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
        {
            if(maps[i][j]=='.'){
                dfs(i,j,1);
            }
        }
    if(p==1)cnt/=2;//加了这个少了2个AC
    printf("%d",cnt);
    return 0;   
}
2023/7/21 16:46
加载中...