题目传送门 1 /* 2 题意:给出若干个点的坐标,用一个矩形去覆盖,问最多能覆盖几个点 3 线段树+扫描线:思路是先建一棵以[y, y + h]的树,左右儿子[x, x + w] 4 以这棵树为范围,从左到右扫描,更新点数,x的+1, x+w的-1(...
分类:
其他好文 时间:
2015-05-22 20:54:25
阅读次数:
120
连接 :
??
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1082
题目可以将每个人的两种适应度转化为一个在坐标系里的矩形。假设音量为x轴,空调为y轴。
那么题目要求的可以转化为 在所有的矩形里选择一个点 这个点可以覆盖最多的矩形。
题目可以进一步转化 需要用到扫描线,只考虑每个矩形的上边和下边,每个边都构成一个扫描线(沿着y轴方向...
分类:
其他好文 时间:
2015-05-15 17:50:17
阅读次数:
159
ZOJ 3597题意是说有n把枪,有m个靶子,每把枪只有一发子弹(也就是说一把枪最多只能打一个靶子), 告诉你第 i 把枪可以打到第j个靶,现在等概率的出现一个连续的P把枪,在知道这P把枪之后,你被允许选择一个连续的Q个靶子,使得这P把枪所打到的靶子的数目最多,问打到的靶子数目的期望值是多少。这题通...
分类:
其他好文 时间:
2015-05-10 22:16:57
阅读次数:
310
题意:有n个点,给你w*h的框框,问你最多可以框住几个点,边缘也算。
做法:把每个点x-w/2,y-h/2, 与x+w/2,y+h /2,作一个矩形,可以知道,只有那个框框的中心在这个矩形中就可以覆盖这个点。然后就把所有点的矩形画出来,计算最大重合的层数就行了。实际操作中 可以把每个矩形看作 左下角为 x,y,右上角为x+w,y+h。 也就相当于一起平移。最大重合层数不变。
这题和我之前做得算面积的线段树不同。因为这里关注的不在是面积,所以也就不再关注宽度了。所以这里 线段树里的每个点0-(k-1...
分类:
其他好文 时间:
2015-05-05 21:48:00
阅读次数:
212
#include
#include
#include
#include
using namespace std;
const int maxn=40005;
const int bw=20000;
#define lson(x) ((x)<<1)
#define rson(x) (((x)<<1)|1)
int lc[maxn<<2],rc[maxn<<2],ad[maxn<<2],nd[ma...
分类:
其他好文 时间:
2015-05-04 18:11:26
阅读次数:
102
DescriptionThere are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of par...
分类:
其他好文 时间:
2015-05-04 11:50:31
阅读次数:
133
复习了一下线段树,才发现线段树还是做的太少了,好多都忘了
线段树主要有以下功能:RMQ,区间总和查询,单点更新,区间更新
都忘了区间更新时要延迟更新了,这里一开始WA了。
再说说这题的思路:
把每个点作为矩形的左下角,画出所有矩形,以被矩形覆盖次数最多的区域中的任一点作为矩形的右上角,即为我们要求的矩形。
也就是说,我们要求的是被矩形覆盖次数最多的次数,这样用扫描线就可以解决,但直接扫描...
分类:
其他好文 时间:
2015-05-03 09:23:31
阅读次数:
173
求矩形的面积之和。线段树+离散话+扫描线 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include10 #define INF 9999999911 using...
分类:
其他好文 时间:
2015-04-30 21:37:49
阅读次数:
124
题意:
给出n个矩形的左下角和右上角坐标,求这n个矩形所构成的面积
思路:
线段树扫描线
这是第一次做到线段树扫描线,刚开始也不懂
如果不懂,可以看:
http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html
和 http://www.faceye.net/search/69289.html
我是看第...
分类:
其他好文 时间:
2015-04-28 07:13:12
阅读次数:
174
矩阵交并周长的模板题
这题不需要离散化,需要注意的时候负坐标转化成正坐标
#include
#include
#include
using namespace std;
#define lson (pos<<1)
#define rson (pos<<1|1)
typedef long long LL;
const int maxn = 30005;
const int ADD = 1000...
分类:
其他好文 时间:
2015-04-27 21:45:45
阅读次数:
142