【Bzoj1218】激光炸弹
来源:互联网 发布:sql 查询月份 编辑:程序博客网 时间:2024/05/20 04:50
题意
给你n个点的坐标xi,yi。求一个边长为k的正方形能覆盖多少点。
解析
可以枚举。但是要加一个二维前缀和。统计的时候可以画一个图。首先a[i][j]是一个大矩形。之后在旁边切掉两个小矩形,但多切掉了一个重复部分,要把它加上。
#include <cstdio>#include <algorithm>#define Rep( i , _begin , _end ) for(int i=(_begin);i<=(_end);i++)#define For( i , _begin , _end ) for(int i=(_begin);i!=(_end);i++)using std :: max;using std :: min;const int maxx = 5000 + 25;int x[maxx<<1],y[maxx<<1],v[maxx<<1];int a[maxx][maxx];int n,k,ans;int main(){ scanf("%d%d",&n,&k); Rep( i , 1 , n ) scanf("%d%d%d",&x[i],&y[i],&v[i]),x[i]++,y[i]++,a[x[i]][y[i]] += v[i]; Rep( i , 1 , 5001 ) Rep( j , 1 , 5001 ) a[i][j] += a[i-1][j]; Rep( i , 1 , 5001 ) Rep( j , 1 , 5001 ) a[i][j] += a[i][j-1]; Rep( i , k , 5001 ) Rep( j , k , 5001 ) ans = max(ans , a[i][j] + a[i-k][j-k] - a[i][j-k] - a[i-k][j]); printf("%d",ans);}
1 0
- [BZOJ1218] [HNOI2003]激光炸弹
- bzoj1218【HNOI2003】激光炸弹
- BZOJ1218 激光炸弹
- BZOJ1218: [HNOI2003]激光炸弹
- 【bzoj1218】 [HNOI2003]激光炸弹
- 【Bzoj1218】激光炸弹
- bzoj1218: [HNOI2003]激光炸弹
- bzoj1218: [HNOI2003]激光炸弹
- BZOJ1218: [HNOI2003]激光炸弹
- bzoj1218: [HNOI2003]激光炸弹
- bzoj1218 激光炸弹 二维前缀和
- BZOJ1218(NOI2003)[激光炸弹]--容斥
- [BZOJ1218][HNOI2003]激光炸弹(扫描线+线段树)
- bzoj1218 [HNOI2003]激光炸弹(二维前缀和+暴力/线段树+离散化+扫描线)
- 1218: [HNOI2003]激光炸弹
- [HNOI2003]激光炸弹
- [HNOI2003]激光炸弹
- 1218: [HNOI2003]激光炸弹
- C#学习日记 链表
- 33个网站搞定一切中外电子书籍及杂志
- Leetcode——45Jump GameII
- 20170401-leetcode-435-Non-overlapping Intervals
- poj1006 -- 生理周期
- 【Bzoj1218】激光炸弹
- 几个下载软件的网址
- 浅谈倍增查找LCA
- C语言输入输出函数总结
- 【其他】Hexo博客(Next主题)放弃多说,接入网易云跟贴
- 设计模式
- POJ 2152 Fire
- opencv 多线程显示imshow出现图片不更新的问题
- 禁用系统关闭按钮---X