BZOJ1218 [HNOI2003]激光炸弹

暴力水题。。敲的好麻烦。

用前缀和可以n^2复杂度

感觉这个题就是由问题,边上的问题不知道数据是怎么算的,反正过了。。。

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 const int maxn = 5005;
 6 int d[maxn][maxn];
 7 int main()
 8 {
 9     int n,r;scanf("%d%d",&n,&r);
10     memset(d,0,sizeof(d));
11     for(int i = 1;i<=n;++i){
12         int u,v,w;scanf("%d%d%d",&u,&v,&w);
13         d[u+1][v+1] += w;
14     }
15     for(int i = 1;i<=5001;++i)for(int j = 1;j<=5001;++j)
16         d[i][j] = d[i][j]+d[i-1][j]+d[i][j-1]-d[i-1][j-1];
17     int ans = 0;
18     for(int i = r;i<=5001;++i)for(int j = r;j<=5001;++j)
19         ans = max(ans,d[i][j]-d[i-r][j]-d[i][j-r]+d[i-r][j-r]);
20     printf("%d\n",ans);
21     return 0;
22 }

 

posted on 2015-07-31 23:52  round_0  阅读(108)  评论(0编辑  收藏  举报

导航