BZOJ1218(二维前缀和)

1218: [HNOI2003]激光炸弹
分析:经典的二维前缀和问题。在二维平面上,根据容斥原理,从(1,1)到(x,y)的二维前缀和https://chart.googleapis.com/chart?cht=tx&chl=S(x%2Cy)%3DS(x-1%2Cy)%2BS(x%2Cy-1)-S(x-1%2Cy)%2BA(X%2CY)。 同理,根据容斥原理,二维区间https://chart.googleapis.com/chart?cht=tx&chl=(X_1%2CY_1)https://chart.googleapis.com/chart?cht=tx&chl=(X_2%2CY_2)的前缀和就是https://chart.googleapis.com/chart?cht=tx&chl=S(X_2%2CY_2)-S(X_1%2CY_2)-S(X_2%2CY_1)%2BS(X_1%2CY_1)

#include "bits/stdc++.h"using namespace std;const int maxn=5e3+10;int n,a[maxn][maxn],R;int main(){    //freopen("in.txt","r",stdin);    scanf("%d%d",&n,&R);    for(int i=1;i<=n;i++){        int x,y,v;        scanf("%d%d%d",&x,&y,&v);        a[x+1][y+1]+=v;    }    for(int i=1;i<=5001;i++)        for(int j=1;j<=5001;j++)            a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+a[i][j];    int mx=0;    for(int i=R;i<=5001;i++)        for(int j=R;j<=5001;j++)            mx=max(mx,a[i][j]-a[i-R][j]-a[i][j-R]+a[i-R][j-R]);    printf("%d\n",mx);    return 0;}

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章