
算法设计-二分法
LYoGa
这个作者很懒,什么都没留下…
展开
-
UVA714- Copying Books(最大值最小化)
题意:k份书稿分成m份,使得每份的和最小思路:典型最大值最小化问题,使用贪心+二分。贪心的是每次尽量将元素往右边划分,二分查找最小的x满足m个连续的子序列和S(i)都不超过x。因为输出的原因,在划分时就从后往前尽量划分。#include #include #include #include using namespace std;typedef long原创 2014-07-31 10:30:57 · 865 阅读 · 0 评论 -
UVA11134- Fabled Rooks
题目链接题意:在n*n棋盘上放n辆车,使得任意两辆车不相互攻击,且第i辆车在一个给定的矩形之内。思路:刚开始以为是n皇后的问题,但是本题只要水平和竖直才能攻击到,并没有斜线的约束。所以可以判断出行和列是互相没有影响的,那么只要分别对行和列进行贪心操作,先按照左端点值从小到大排序,然后用优先队列维护,先处理右端点小的。做法与这题类似 UVA1422#inc原创 2014-08-10 20:34:41 · 1335 阅读 · 0 评论 -
UVA1422-Processor(二分法+优先队列)
题目链接题意:有n个任务,每个任务必须在在时刻[r, d]之内执行w的工作量(三个变量都是整数)。处理器执行的速度可以变化,当速度为s时,一个工作量为w的任务需要 执行的时间为w/s个单位时间。另外不一定要连续执行,可以分成若干块。求处理器在执行过程中最大速度的最小值。处理器速度为任意的整数值。思路:其实类似于最大值的最小化,也就是在满足各个任务在给定的时间区间内完原创 2014-08-09 15:52:03 · 1354 阅读 · 0 评论 -
UVA11627-Slalom(二分法)
题目链接题意:有n个宽为w的旗门,第i个旗门左端的坐标为(xi, yi),对于所有1 思路:当垂直速度越小时,到达下一个旗门的概率就越大。所以先将滑雪板的速度从小到大排序。其实一个旗门到下一个旗门是有一个区间的,所以只要下一个旗门与这个区间有交集,就代表能从上一个抵达下一个,我们就可以根据这个做法加上二分法查找能通过所有旗门的最大速度。#include #includ原创 2014-08-09 21:57:59 · 1174 阅读 · 0 评论 -
UVA1450-Airport
题目链接题意:有一个飞机场,有两条待飞跑到w和e,一条起飞跑道,每一时刻只能起飞一架飞机,然后有w[i]和e[i]架飞机进入w和e跑道,飞机编号从0开始,问说如何安排起飞可以使得飞机编号的最大值最小。思路:只要二分搜索,找到最小的答案就可以了,注意跑道上为0时,是没有飞机起飞的。#include #include #include #include u原创 2014-08-10 20:12:10 · 986 阅读 · 0 评论 -
UVALive3211- Now or later(二分+2-SAT)
题目链接题意:有n架飞机。每架飞机都可以选择早着陆和晚着陆两种方式之一,且必须选择一种。任务就是安排所有飞机着陆时,相邻两个着陆时间间隔的最小值尽量大。思路:用二分处理最小值尽量大。该题目可以转化为是否存在一个调度方案,使得相邻两个着陆时间差总是不小于P,进一步转化为任意两个着陆时间差总是不小于P。,假设布尔变量xi表示第i架飞机是否早着陆,唯一限制就是“时间差小于P的原创 2014-09-28 15:47:22 · 1165 阅读 · 0 评论