欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1218 题意概括 给出一个大的矩阵,求边长为r的正方形区域的最大sum. 题解 二维前缀和然后暴力就可以了. 代码 #include <cstring> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cmath> using namespace std; co…
题意:二维网格一些格子有权值,求用边长为$r$的正方形能覆盖到格子权值和的最大值,格子大小$ \leq 5000$ 非常裸的二维前缀,然而 题目下标从0开始! QAQ 要是比赛就要爆零啦- #include<cstdio> #define rep(i,n) for(register int i=1;i<=n;i++) #define REP(i,a,b) for(register int i=a;i<=b;i++) const int N=5005; int n,r,w[N][N]…
[HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3022  Solved: 1382[Submit][Status][Discuss] Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那…
(题面来自AcWing) 一种新型的激光炸弹,可以摧毁一个边长为 R 的正方形内的所有的目标. 现在地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi. 激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个边长为 R的正方形的边必须和x,y轴平行. 若目标位于爆破正方形的边上,该目标不会被摧毁. 求一颗炸弹最多能炸掉地图上总价值为多少的目标. 输入格式 第一行输入正整数 N 和 R ,分别代表地图上的目标数目和正方形的边长,数据用空格隔开.…
由题给的xi, yi范围,可以建立二维地图maze[i][j],记录i j范围上的所有目标的价值总和 即有maze[xi][yi] += wi 然后接下来的目标就是求出该二维数组的前缀和 可得到前缀和计算的递推式: maze[i][j] += maze[i-1][j] + maze[i][j-1]-maze[i-1][j-1] 继而可以推出 对于一个边长为r的正方形其覆盖范围价值为 maze[i][j] - maze[i-r][j] - maze[i][j-r] + maze[i-r][j-r]…
1218: [HNOI2003]激光炸弹 题目:传送门 题解: 一道经典题目啊... 为了更好的操作...把整个坐标系向右上角移动,从(1,1)开始 那么f[i][j]统计一下以(i,j)作为右上角,以(1,1)作为左下角所组成的矩阵里面的价值和 不难发现,爆炸范围为R*R,且刚好在边上的点不会被摧毁,那么有效矩阵的四条边上肯定就只有R个点 那么ans=max(ans,f[i][j]+f[i-r][j-r]-f[i][j-r]-f[i-r][j]); 代码: #include<cstdio>…
链接: https://www.acwing.com/problem/content/101/ 题意: 一种新型的激光炸弹,可以摧毁一个边长为 R 的正方形内的所有的目标. 现在地图上有 N 个目标,用整数Xi,Yi表示目标在地图上的位置,每个目标都有一个价值Wi. 激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆炸范围,即那个边长为 R 的正方形的边必须和x,y轴平行. 若目标位于爆破正方形的边上,该目标不会被摧毁. 求一颗炸弹最多能炸掉地图上总价值为多少的目标. 思路: 二维前缀和搞…
题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的正方形的边必须和x,y轴平行.若目标位于爆破正方形的边上,该目标将不会被摧毁. 解法 在题目描述中有这么一句话,若目标位于爆破正方形的边上,该目标将不会被摧毁.,这句话我觉得是一句废话,我们可以放在\(0.5\)这种…
激光炸弹 bzoj-1218 HNOI-2003 题目大意:在笛卡尔坐标系上有n个点,问一个平行于坐标轴的r*r的正方形可以最多覆盖多少个目标. 注释:$1\le n \le 10000$,$1\le answer\le 32767$. 想法:更一道水题.我们将所有的目标按坐标排序,之后暴力枚举.前缀和优化即可. 最后,附上丑陋的代码... ... #include <iostream> #include <cstdio> #include <cstring> #inc…
题目后面写着DP就当它是DP吧.. 本来是扫描线+线段树的说,但是捏5000^2还是能过滴,于是暴力枚举正方形+所谓的DP就解决了. /************************************************************** Problem: 1218 User: rausen Language: C++ Result: Accepted Time:2860 ms Memory:98656 kb ********************************…
题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(n≤10000)个目标,用整数xi,yi(0≤xi,yi≤5000)表示目标在地图上的位置,每个目标都有一个价值0<vi<100.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的正方形的边必须和x,y轴平行.若目标位于爆破正方形的边上,该目标将不会被摧毁. 现在你的任务是计算一颗炸弹最多能炸掉地图上总价值为多少的目标.   输入输出格式 输入格式: 输入文件的第一行为正整数…
1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1778  Solved: 833[Submit][Status][Discuss] Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破…
虽然source写着dp , 而且很明显dp可以搞...但是数据不大 , 前缀和 + 枚举也水的过去..... ------------------------------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm> #include<iostream&g…
1218: [HNOI2003]激光炸弹 Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的正方形的边必须和x,y轴平行.若目标位于爆破正方形的边上,该目标将不会被摧毁. 0 Input 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整…
NC20032 [HNOI2003]激光炸弹 题目 题目描述 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标. 现在地图上有 \(n\) (\(N ≤ 10000\))个目标,用整数 \(Xi,Yi\) (其值在 \([0,5000]\) )表示目标在地图上的位置,每个目标都有一个价值. 激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为 \(R\) 的正方形的边必须和 \(x,y\) 轴平行. 若目标位于爆破正方形的边上,该目标将不会被摧毁. 输入描述…
Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n个目标,用整数,表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的正方形的边必须和x,y轴平行.若目标位于爆破正方形的边上,该目标将不会被摧毁. 现在你的任务是计算一颗炸弹最多能炸掉地图上总价值为多少的目标. Input 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi .…
题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文件名为output.txt 输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767). 输入输出样例 输入样例#1: 复制 2 1 0 0 1 1 1 1 输出样例#1: 复制 1 二维前缀和板子题我要说的是一个cin输入问题,此题不能cin>>a>>b&g…
P2280 [HNOI2003]激光炸弹 题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文件名为output.txt 输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767). 输入输出样例 输入样例#1: 2 1 0 0 1 1 1 1 输出样例#1: 1 #include<iostream> #include&l…
一道很好的二维前缀和模板题. 什么是二维前缀和? 从这张图可以看出前缀和的求法: Map[i][j]=Map[i-1][j]+Map[i][j-1]-Map[i-1][j-1]+Map[i][j]; 这道题的代码: #include<bits/stdc++.h> using namespace std; const int MAXN=5000+10; int n,r; int Map[MAXN][MAXN];//数组开的下 inline int read() { int tot=0; char…
总时间限制:  1000ms 内存限制:  65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵. 比如,如下4 * 4的矩阵 0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2 的最大子矩阵是 9 2-4 1-1 8 这个子矩阵的大小是15. 输入 输入是一个N * N的矩阵.输入的第一行给出N (0 < N <= 100).再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给…
题目这么说的: 摩尔瓦多的移动电话公司摩基亚(Mokia)设计出了一种新的用户定位系统.和其他的定位系统一样,它能够迅速回答任何形如“用户C的位置在哪?”的问题,精确到毫米.但其真正高科技之处在于,它能够回答形如“给定区域内有多少名用户?”的问题. 在定位系统中,世界被认为是一个W×W的正方形区域,由1×1的方格组成.每个方格都有一个坐标(x,y),1<=x,y<=W.坐标的编号从1开始.对于一个4×4的正方形,就有1<=x<=4,1<=y<=4(如图): 请帮助Mok…
题目链接: I. Special Squares There are some points and lines parellel to x-axis or y-axis on the plane. If arbitrary chosen two lines parallel to x-axis and two lines parallel to y-axis, one rectangle, or sometimes a square, will be formed. If a square i…
C. New Year and Domino   They say "years are like dominoes, tumbling one after the other". But would a year fit into a grid? I don't think so. Limak is a little polar bear who loves to play. He has recently got a rectangular grid with h rows and…
题目链接:BZOJ - 1218 题目分析 可以覆盖一个边长为 R 的正方形,但是不能包括边界,所以等价于一个边长为 R - 1 的正方形. 坐标范围 <= 5000 ,直接 n^2 的二维前缀和,枚举每一个边长为 R - 1 的正方形就 AC 了 = = 但是,尽管 O(n^2) 的算法能水过,lct1999 神犇仍然坚持要写 O(n logn) 算法虐掉这道题,于是我 Orz 他也学着写了一下. 在神犇的讲解下,我写了这个算法: 首先将 n 个点按照 x 坐标排序,用一条竖直的扫描线,从左到…
1218: [HNOI2003]激光炸弹 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1139  Solved: 542[Submit][Status] Description 一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标.现在地图上有n(N<=10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值.激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为…
题目链接:https://nanti.jisuanke.com/t/16445 题意: 给你一个n*n大小的01矩阵,和一个k*k大小的锤子,锤子只能斜着砸,问只砸一次最多能砸到多少个1. 题解: 将原矩阵顺时针旋转45°,二维前缀和预处理,然后枚举每一个可能砸到的正方形之和并取最大. 注:枚举的正方形的四个顶点必须是从原矩阵旋转过来的点,否则会出现砸到下面的这种情况: (*代表不是原矩阵旋转过来的点,阴影代表砸到的部分) 代码中用vis数组判断是否为原矩阵中旋转过来的点. AC Code: #…
思路:就是使用二维前缀和的模板: 先放模板: #include<iostream> using namespace std; #define ll long long ; ll a[maxn][maxn], jx[maxn][maxn]; ll n, m, L, xa, ya, xb, yb; ll aa, bb, maxx = ; int main(){ cin >> n >> m>>L; ; i <= n;++i) ; j <= m; ++j…
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; ]; )*m+j]+=val;} int q(int i,int j) { ||j==) ; )*m+j]; } int main(){ int p,Q; while(cin>>n>>m){ cin>>p; int x1,y1,x2,y2; rep(i,,n*m)a[i]=; whi…
<题目链接> 题目大意:给你一个由01组成的矩形,现在问你,该矩形中,最多只含一个1的正方形的边长最长是多少. 解题分析: 用二维前缀和维护一下矩形的01值,便于后面直接$O(1)$查询任意子矩阵中1的个数,然后就是二分答案枚举边长. #include <bits/stdc++.h> using namespace std; template<typename T> inline void read(T&x){ x=;;char ch = getchar();…
题目链接:http://codeforces.com/problemset/problem/835/C 题意: 在天空上划定一个直角坐标系,有 $n$ 颗星星,每颗星星都有坐标 $(x_i,y_i)$,星星初始亮度为 $s_i$,所有星星的亮度有个上限 $c$. 在时刻 $0$,每颗星星都是初始亮度 $s_i$,然后每过一个单位时间,星星亮度都增加 $1$,如果亮度一旦超过 $c$ 就立刻变为 $0$. 现在有 $q$ 次观察天空的机会,观察时刻为 $t_i$,观察的视野为左下角为 $(x_{1…