基础算法-枚举/搜索
The_useless
这个作者很懒,什么都没留下…
展开
-
LA 4356 Fire-Control System (扫描法)
LA 4356 Fire-Control System题目大意:平面上有n个点,找到一个以(0,0)为圆心的扇形,至少覆盖k个点,使其面积尽可能小.题目分析:影响扇形面积的有两个因素:圆心角和半径,但是并不容易同时维护两个变量. 可以选择确定某一变量,使得另一变量尽可能小来使得面积尽可能小. 这里选择先确定半径,那么就会剩下一些点,再在这些点中筛选使其面积尽可能小.代码:#include<cma原创 2016-12-15 08:13:11 · 500 阅读 · 0 评论 -
LA 4253 Archery (暴力枚举/二分答案+枚举)
LA 4253 Archery题目大意:有n个与x轴平行的线段,每条线段是一个靶子(由D,L,R表示纵坐标为D,左右端点横坐标为L,R),问在x轴的[0,W]区间上是否存在位置可以使得箭穿过所有靶子.假设箭沿直线飞行,直到无穷远处,不同靶子纵坐标不同.题目分析:解法一(O(n^2)):将靶子两两进行枚举,判断i靶子左/右端点与j靶子右/左端点在x轴上的交点形成区间与原区间取交集,若为空,无解.解法一原创 2016-12-13 14:54:59 · 556 阅读 · 0 评论 -
LA 4850 Installations (排序+枚举)
LA 4850 Installations题目大意有n个安装服务,第i个服务需要si时间完成,截止日期为di,若在截止日期前完成,没有惩罚,若在截止日期后完成,若完成日期为ti,惩罚值为ti-di.即惩罚值为max(0,ti-di).求如何安排任务,使得最大的两个惩罚值之和最小.题目分析最开始把题看错了,看成是求最大的惩罚值最小,直接按照di排序.但是这种方法只能使得全局最优,并不一定是和最小.那么原创 2016-12-13 09:52:21 · 793 阅读 · 1 评论 -
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 · 370 阅读 · 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 · 445 阅读 · 0 评论 -
LA 3041 Colored Cubes (暴力枚举+贪心)
LA 3041 Colored Cubes题目大意:给n个立方体,每面涂有一颜色,如何尽可能少的涂色,使得所有立方体完全相同.两个立方体相同指存在一种旋转方式使得两个立方体完全一致.题目分析:n<=4,比较小,所以可以想到以某一个立方体为标准,不旋转这个标准立方体,枚举其他立方体旋转情况,使得在某一情况下的花费最少. 当然问题就在于如何枚举出某一立方体的所有旋转形态,以每一个面为正面,存在4种形态原创 2016-12-08 19:54:03 · 334 阅读 · 0 评论