感觉没毛病,但一个都没过||-||
查看原帖
感觉没毛病,但一个都没过||-||
687239
cc_tt楼主2022/4/11 11:46
#include<bits/stdc++.h>

using namespace std;
int r, c, k;
int main(){
    cin >> r >> c >> k;
    cin.get();
    cin.get();
    vector<vector<char>>matrix(r + 1, vector<char>(c + 1));
    for(int i = 1; i <= r; i++){
        for(int j = 1; j <= c; j++){
            scanf("%c", &matrix[i][j]);
        }
        cin.get();
        cin.get();
    }
    long long ans = 0;
    //搜索横向
    for(int i = 1; i <= r; i++){
        int memo = 0;
        for(int j = 1; j <= c; j++){
            if(matrix[i][j] == '.'){
                memo++;
            }else{
                if(memo >= k){
                    ans += (memo - k + 1);
                }
                memo = 0;
            }
        }
        if(memo >= k){
            ans += (memo - k + 1);
        }
    }
    //搜索纵向
    if(k != 1){
        for(int i = 1; i <= c; i++){
            int memo = 0;
            for(int j = 1; j <= r; j++){
                if(matrix[j][i] == '.'){
                    memo++;
                }else{
                    if(memo >= k){
                        ans += (memo - k + 1);
                    }
                    memo = 0;
                }
            }
            if(memo >= k){
                ans += (memo - k + 1);
            }
        }
    }
    
    printf("%lld", ans);
}
2022/4/11 11:46
加载中...