简单的二维前缀和
#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;
}

京公网安备 11010502036488号