BZOJ 1218 枚举水

a[i][j]记录以i,j为右下角的矩形内所有价值和,然后枚举每一个点位置的正方形所能取得的价值

#include "stdio.h"
#include "string.h"

int a[5110][5110];

int Max(int a,int b)
{
    if (a<b) return b;else return a;
}
int main()
{
    int n,r,Mx,My,ans,i,j,x,y,z;
    while (scanf("%d%d",&n,&r)!=EOF)
    {
        memset(a,0,sizeof(a));
        Mx=My=5002;
        while (n--)
        {
            scanf("%d%d%d",&x,&y,&z);
            x++; y++;
            a[x][y]+=z;
        }

        for (i=1;i<=Mx;i++)
            for (j=1;j<=My;j++)
                a[i][j]+=a[i][j-1]+a[i-1][j]-a[i-1][j-1];

        ans=0;
        for (i=0;i<Mx-r;i++)
            for (j=0;j<My-r;j++)
            ans=Max(ans,a[i+r][j+r]-a[i+r][j]-a[i][j+r]+a[i][j]);
        printf("%d\n",ans);
    }
    return 0;
}
时间: 2024-08-05 15:20:49

BZOJ 1218 枚举水的相关文章

CodeForces 444C. DZY Loves Physics(枚举+水题)

转载请注明出处:http://blog.csdn.net/u012860063/article/details/37509207 题目链接:http://codeforces.com/contest/445/problem/C DZY Loves Physics DZY loves Physics, and he enjoys calculating density. Almost everything has density, even a graph. We define the densi

BZOJ 1218: [HNOI2003]激光炸弹( 前缀和 + 枚举 )

虽然source写着dp , 而且很明显dp可以搞...但是数据不大 , 前缀和 + 枚举也水的过去..... ------------------------------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream&g

【BZOJ 1218】 [HNOI2003]激光炸弹

1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1221  Solved: 581 [Submit][Status][Discuss] Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其

【BZOJ】初级水题列表——献给那些想要进军BZOJ的OIers(自用,怕荒废了最后的六月考试月,刷刷水题,水水更健康)

BZOJ初级水题列表——献给那些想要进军BZOJ的OIers 代码长度解释一切! 注:以下代码描述均为C++ RunID User Problem Result Memory Time Code_Length 695765 Eolv 1000 Accepted 804 kb 0 ms 118 B 739478 Eolv 2463 Accepted 804 kb 0 ms 134 B 696662 Eolv 1968 Accepted 1272 kb 48 ms 137 B 739546 Eolv

BZOJ 1218 HNOI2003 激光炸弹 暴力

题目大意:给定平面上的n个点,求一个r*r的正方形最多覆盖多少个点 NOIP 2014 D2T1 无线网络发射器选址 直接暴力枚举正方形 加个前缀和优化就能过 n^2大法好啊 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define M 5010 using namespace std; int n,r,ans,sum[M][M]; int main()

(DP) bzoj 1218

1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1292  Solved: 621[Submit][Status][Discuss] Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破

[bzoj 1208]STL水过

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1208 看网上的题解都用的手写数据结构--然而直接用set的lower_bound就水过去了-- #include<bits/stdc++.h> using namespace std; const int md=1000000; set<int> pet,people; int main() { int n; scanf("%d",&n); in

bzoj 1601 灌水

题目大意: 决定把水灌到n块农田,农田被数字1到n标记 把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库 建造一个水库需要花费wi,连接两块土地需要花费Pij. 计算所需的最少代价 思路: 新开一个节点与每个农田连一条长为wi的边 然后直接最小生成树 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstdlib> 5 #include<cstr

方程的解——枚举&amp;&amp;水题

题目 链接 给出方程组:$$\displaystyle \left\{\begin{aligned}11x + 13y + 17z = 2471 \\13x + 17y + 11z = 2739\end{aligned}\right.$$已知 $x$,$y$,$z$ 均为正整数,请你计算$x$,$y$,$z$相加之和的最小值 解决方法 由空间几何知,方程组确定的是一条直线,加上正整数约束就是一条线段,求线段上的点$x+y+z$的最小值. 确定其中一个可求出另外两个,枚举其中范围较小的,$1 \l