HDU1542Atlantis(扫描线)
题目链接
题目大意:给你n个覆盖矩形,问最后覆盖的面积。
解题思路:将每个矩形拆成两条线段,一条是+1的,另一条是减1的,然后扫描先从上往下扫描,碰到加1的那条线段,那么这条线段范围内的节点的覆盖信息就+1,直到碰到减1这个线段范围内的节点的覆盖信息都需要减1。这样说可能理解不了,就可以画画矩形然后画下扫描线在理解理解。然后就是需要离散化...
分类:
其他好文 时间:
2014-10-19 15:43:22
阅读次数:
285
UVA11983 - Weird Advertisement(扫描线)
题目链接
题目大意:给你n个覆盖矩形,问哪些整数点是被覆盖了k次。
题目大意:这题和hdu1542是一个题型,但是这题求的是覆盖k次的点,所以pushup里面就要改一下,具体的看代码把,大概的意思就是每次都是通过下面的两个孩子节点的覆盖信息更新父节点的覆盖信息。然后这题也是需要离散化建树。比较需要注意的是这题...
分类:
其他好文 时间:
2014-10-19 15:39:40
阅读次数:
317
题目链接:hdu 3255 Farming题目大意:给定N个矩形,M个植物,然后给定每一个植物的权值pi,pi表示种植物i的土地,单位面积能够收获pi,每一个矩形给定左下角和右上角点的坐标,以及s,s表示该矩形能够中植物s。问说总的最大收益。解题思路:由于一块仅仅能种一种植物,所以对于一块重叠的土地...
分类:
其他好文 时间:
2014-10-18 10:56:45
阅读次数:
154
URAL 1707. Hypnotoad's Secret
题目链接
题意:这题设置的恶心不能多说,构造点和矩形,大概就是问每个矩形里面是否包含点
思路:树状数组,把点排序,按y轴,在按x轴,在按询问,这样每次遇到一个点就在相应的扫描线上加,遇到查询就询问出左边到这个点位置的,就能预处理出每个点左下角包含的点的个数,然后每个矩形再利用容斥原理去搞一下即可
代码:
#i...
分类:
编程语言 时间:
2014-10-17 22:00:18
阅读次数:
379
POJ 2482 Stars in Your Window
题目链接
题意:给定一些星星,每个星星都有一个亮度,现在要用w * h的矩形去框星星,问最大能框的亮度是多少
思路:转化为扫描线的问题,每个星星转化为一个矩形,那么等于求矩形相交区域值最大的区域,利用线段树去维护即可
代码:
#include
#include
#include
using namesp...
DescriptionByteman, one of the most deserving employee of The Goldmine of Byteland, is about to retire by the end of the year. The Goldmine management...
分类:
其他好文 时间:
2014-10-14 17:24:48
阅读次数:
323
HDU 1542 Atlantis
题目链接
题意:给定一些矩形,求面积并
思路:利用扫描线,由于这题矩形个数不多,直接暴力扫就可以了,如果数据大,就要用线段树
代码:
#include
#include
#include
#include
using namespace std;
const int N = 205;
const int M = 10000...
分类:
其他好文 时间:
2014-10-14 14:06:38
阅读次数:
119
题目链接:hdu 3642 Get The Treasury
题目大意:三维坐标系,给定若干的长方体,问说有多少位置被覆盖3次以上。
解题思路:扫描线,将第三维分离出来,就是普通的二维扫描线,然后对于每个节点要维护覆盖0,1,2,3以上这4种的覆盖面积。
#include
#include
#include
#include
using namespace std;
co...
分类:
其他好文 时间:
2014-10-12 11:21:27
阅读次数:
323
题目链接:poj 2482 Stars in Your Window
题目大意:平面上有N个星星,问一个W?H的矩形最多能括进多少个星星。
解题思路:扫描线的变形。只要以每个点为左上角,建立矩形,这个矩形即为框框左下角放的位置可以括到该点,那么N个星星就有N个矩形,扫描线处理哪些位置覆盖次数最多。
#include
#include
#include
#include
us...