JZOJ 3831. 地图的密度
题目
分析
- 前缀和
代码
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm> 5 #define ll long long 6 using namespace std; 7 int f[300][300],ans[300][300],sum[300][300]; 8 int main() 9 { 10 freopen("map.in","r",stdin); 11 freopen("map.out","w",stdout); 12 int n,r; 13 scanf("%d%d",&n,&r); 14 for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) scanf("%d",&f[i][j]); 15 for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+f[i][j]; 16 for (int i=1;i<=n;i++) 17 for (int j=1;j<=n;j++) 18 { 19 int ka=max(1,i-r),kka=min(n,i+r); 20 int kb=max(1,j-r),kkb=min(n,j+r); 21 ans[i][j]=sum[kka][kkb]-sum[ka-1][kkb]-sum[kka][kb-1]+sum[ka-1][kb-1]; 22 } 23 for (int i=1;i<=n;i++) 24 { 25 for (int j=1;j<=n;j++) 26 printf("%d ",ans[i][j]); 27 cout<<endl; 28 } 29 30 return 0; 31 }
为何要逼自己长大,去闯不该闯的荒唐