简单的二维前缀和

#include <bits/stdc++.h>
#define ll long long
const int N=1005;
using namespace std;
int n,m,k,cnt[N][N];
string s;
int main()
{
    ios::sync_with_stdio(false);
    cin>>n>>m>>k;
    for(int i=1;i<=n;++i)
    {
        cin>>s;
        for(int j=1;j<=m;++j)
        {
            cnt[i][j]=s[j-1]-'0'+cnt[i-1][j]+cnt[i][j-1]-cnt[i-1][j-1];
        }
    }
    int ans=0;
    for(int i=1;i<=n-k+1;++i)
    {
        for(int j=1;j<=m-k+1;++j)
        {
            int x=i+k-1,y=j+k-1;
            if(cnt[x][y]-cnt[i-1][y]-cnt[x][j-1]+cnt[i-1][j-1]) ans++;
        }
    }
    cout<<ans<<endl;
    return 0;
}