新人,求教,只过了测试数据。(shangxin)
查看原帖
新人,求教,只过了测试数据。(shangxin)
1460508
tank737楼主2024/9/30 11:47
#include <iostream>
using namespace std;
int map[101][102];
int plus_r(int r,int c,int step){
    if(step==1)return map[r][c];
    return map[r][c]+plus_r(r,c+1,step-1);
}
int plus_c(int r,int c,int step){
    if(step==1)return map[r][c];
    return map[r][c]+plus_c(r+1,c,step-1);
}
int main(){
    int k,sum,m,n;
    cin>>m>>n>>k;
    getchar();
    for(int i=1;i<=m;i++){
        for(int j=1;j<=n+1;j++){
            if(getchar()=='.')
                map[i][j]=1;
            else 
                map[i][j]=0;
        }
    }
    /*for(int i=1;i<=m;i++){
        for(int j=1;j<=n;j++)
            cout<<map[i][j];
        cout<<endl;
    }*/
    for(int i=1;i<=m;i++){//按行检索
        for(int j=1;j<=n-k+1;j++){
            if(plus_r(i,j,k)==k)
                sum++;
        }
    }
    //cout<<sum<<endl;
    for(int j=1;j<=n;j++){//按列检索
        for(int i=1;i<=m-k+1;i++){
            if(plus_c(i,j,k)==k)
                sum++;
        }
    }
    cout<<sum;
    return 0;
}
2024/9/30 11:47
加载中...