数据结构-扫描法
The_useless
这个作者很懒,什么都没留下…
展开
-
LA 4064 Magnetic Train Tracks (极角排序)
LA 4064 Magnetic Train Tracks题目大意:在平面上给n个点(任意三点不共线),问这些点共组成了多少锐角或者直角三角形. (1≤n≤12001\leq n \leq 1200)题目分析:锐角三角形必须满足三个角都为锐角,并不利于统计.尝试统计不是锐角或者直角三角形,即——统计钝角三角形的个数. 统计钝角三角形只需要找到钝角即可,且钝角三角形仅有一个钝角,不会出现重复的情况原创 2016-12-24 08:42:38 · 602 阅读 · 0 评论 -
LA 4356 Fire-Control System (扫描法)
LA 4356 Fire-Control System题目大意:平面上有n个点,找到一个以(0,0)为圆心的扇形,至少覆盖k个点,使其面积尽可能小.题目分析:影响扇形面积的有两个因素:圆心角和半径,但是并不容易同时维护两个变量. 可以选择确定某一变量,使得另一变量尽可能小来使得面积尽可能小. 这里选择先确定半径,那么就会剩下一些点,再在这些点中筛选使其面积尽可能小.代码:#include<cma原创 2016-12-15 08:13:11 · 482 阅读 · 0 评论 -
LA 4851 Restaurant (扫描法)
LA 4851 Restaurant题目大意:有M*M网格,左下角(0,0),右上角(M-1,M-1).上面有n个餐厅,其中编号为1和2的分别是AB两宾馆的餐厅.对于一个位置,若存在与之前已有的任意餐厅位置相比,更靠近A或者B,就定义为”好位置”.问”好位置”的个数.(其中,两点间的距离为曼哈顿距离,即横纵坐标差的绝对值之和)题目分析:因为AB同纵坐标Y,所以尝试从xa移动到xb. 则设d数组,d原创 2016-12-14 21:06:17 · 652 阅读 · 0 评论 -
UVa 10755 Garbage Heap (最大价值子立方体+扫描法)
UVa 10755 Garbage Heap题目大意:有一个大立方体,由A*B*C个小立方体组成,每个小立方体有一个价值(正负皆可).现在要在大立方体中选择一个子立方体,求价值和最大. (注意:不能不取小立方体)题目分析:如果直接枚举的话:x,y,z上下界和价值和,O(n^9). 试试部分枚举,只枚举x,y上下界,那么就可以用扫描法完成z部分,时间复杂度为O(n^5).代码:#include<c原创 2016-12-09 22:38:26 · 353 阅读 · 0 评论 -
LA 3695 Distant Galaxy (部分枚举+扫描法)
LA3695 Distant Galaxy题目大意:一个平面上给出n(1<=n<=100)个点,找到一个矩形,使得矩形边界上的点最多.题目分析:若采用最简单的暴力,枚举四条边界位置+统计答案,时间复杂度为O(n^5). 若采用部分枚举思想,只O(n^2)枚举上下界,那么可以采用扫描法O(n),总时间复杂度为O(n^3),可行. 对于已确定的上下界ymin和ymax.需要用到三个数组lft,on,原创 2016-12-09 20:37:00 · 429 阅读 · 0 评论 -
LA 3905 Meteor (排序+扫描法)
LA 3905 Meteor题目大意:坐标系中一个矩形相机,左下角坐标为(0,0),右上角坐标为(w,h).n个流星在坐标系中飞行,起始点坐标为(x,y),速度为(a,b),那么t时刻的坐标为(x+at,y+bt),问最多能照到多少个流星(矩形边界上的点不会被照到).题目分析:由于是一个矩形相机,对于每一个流星,最多存在某一段连续时间在矩形内.那么就可以将时间区间拆分成进入和离开两个事件.只需要按照原创 2016-12-09 16:00:49 · 479 阅读 · 0 评论