
分治法、二分搜索
HelloWorld10086
追随大神的脚步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVA-10245 The Closest Pair Problem(最近点对问题)
题目大意:给你在n个在二维平面坐标系上的坐标,要你q原创 2014-10-17 18:15:45 · 961 阅读 · 0 评论 -
hdu 5441 Travel(并查集+二分)
题意: 一个nn个点的无向图,给出m条边的边权,给出q次询问,每次给出一个值,求用到所有边权不大于这个值的边的情况下,能够互相到达的点对的个数。解析: 首先我们对边按照边权从小到大排序。 构造一个前缀和数组sum[n]sum[n],表示添加到第nn条边,有多小条能互相到达的点对数。 还有一个要注意的是每增加一个联通块,假如联通块的个数为nn,那么增加的点对数为C2n∗2C_n^原创 2015-09-13 20:04:27 · 742 阅读 · 0 评论 -
UVALive 4253 Archery(二分+atan2应用)
题意: 有 n 个平行于 x 轴的线段,每条线段代表一个靶子。你的任务是判断是否可以站在 x 轴上[0,W][0,W]区间内的摸个位置舌尖,使得箭能穿过所有的靶子。假设沿着直线飞信,直到无穷远处。解析: 二分人站的位置,然后去判断,判断过程中计算每个靶子需要的角度[L,R][L,R],维护[L,R][L,R]区间,先进行按y排序,这样一来,如果一个靶子在LR左边,那么人肯定向左移动,反之人原创 2015-07-16 19:39:48 · 559 阅读 · 0 评论 -
UVA 1422 Processor(二分极大值极小化+优先队列)
题意: 给定n个任务,每个任务必须在时间[R,D]内完成,每个任务工作量为W,问最小完成速率使得所有工作完成。思路: 二分求下界的问题,判断的时候利用优先队列,由于时间只有20000,去枚举每个单位时间,看要给分配个那个任务,这步利用优先队列,按d越小越先出队,因为d越小肯定要越快完成越好。mymy codecode#include <cstdio>#include <cstring>原创 2015-07-14 15:53:56 · 713 阅读 · 0 评论 -
UVA 11627 Slalom(二分极小值极大化)
题意 在一场滑雪比赛中要通过n个门,给出每个门的坐标(xi,yi)(xi,yi)。数据给出w(每个门的宽度),v(水平方向上的最大速度),以及n。 然后是n行门的坐标。在给出m,表示有m双滑雪鞋,每双鞋的速度为s[i]。 问:可以通过所有旗门的滑雪板的最大速度。解析 首先现将s[i]s[i]排序,然后二分答案。判断只需要更具前后两个旗门的高度差来计算时间,由上一个可达区间推出下原创 2015-07-14 15:59:21 · 781 阅读 · 0 评论 -
HDU 5265 pog loves szh II(二分)
题意: 给出n,p,n个数,从中取两个数 a,b , 求出( a + b )% p 的最大值。解析: 先把每个数%p , 可以发现两个数加起来,要么 < p,要么 ≥ p,然后小于 2p。 那么对于大于p的,必定是最大那两个数加起来%p,满足贪心的。 小于p的话,就可以直接找,二分可以,因为满足单调性。AC代码:#include <cstdio>#include <cstr原创 2015-06-09 08:59:02 · 734 阅读 · 0 评论 -
Hdu 4004 The Frog's Games(二分)
题意: 青蛙过河,河中有一定数量的石墩,并规定能跳的步数,求可能的最小步长过河。思路: 最大值最小化问题一般用二分来求解。先将石墩距离起始点的距离排序,然后通过二分枚举求得是否存在一个m值(0~L),使得青蛙可以走过所有的石墩。如果存在且小于M,则记录满足条件的最小值,直至当前点到达n-1为止。AC代码#include <cstdio>#include <cstring>#inclu原创 2015-05-18 19:10:31 · 509 阅读 · 0 评论 -
uva 1555 Garland(二分)
题意: 给定n和A,根据题目公式推出最小的B。思路: 推公式, H1=AH1 = A H3=H2∗2+2−H1H3 = H2*2 + 2 - H1 H4=H3∗2+2−H2H4 = H3 * 2 + 2 - H2 ….. Hn=Hn−1∗2+2−Hn−2Hn = Hn - 1 * 2 + 2 - Hn - 2。 这样以H2做未知数。二分枚举H2使得H2满原创 2015-04-27 15:23:33 · 592 阅读 · 0 评论 -
UVA 1450 Airport(二分+想法题)
题意: 有一个飞机场,有两条待飞跑到w和e,一条起飞跑道,每一时刻只能起飞一架飞机,然后有w[i]和e[i]架飞机进入w和e跑道,飞机编号从0开始,问说如何安排起飞可以使得飞机编号的最大值最小。解析: 由于是最大值最小化问题,所以要用到二分求解。二分枚举最大值 limitlimit 判断该最大值是否满足题目所给的条件。 这题看来别人的代码理解了好久,感觉这题充满了技巧。 设 h原创 2015-04-14 19:51:25 · 824 阅读 · 0 评论 -
UVA 10341 Solve It (解方程 二分查找+精度)
Solve ItInput: standard inputOutput: standard outputTime Limit: 1 secondMemory Limit: 32 MBSolve the equation: p*e-x+ q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0 where 0原创 2014-08-06 21:40:56 · 974 阅读 · 0 评论 -
UVA - 10487 Closest Sums(二分查找)
Problem DClosest SumsInput: standard inputOutput: standard outputTime Limit: 3 seconds Given is a set of integers and then a sequence of queries. A query gives you a number and asks to fin原创 2014-09-13 10:28:11 · 708 阅读 · 0 评论 -
UVA-11129 - An antiarithmetic permutation (分治)
思路:对于一个等差的序列。如0 1 2 3 4 5 我们可以这样做,把他分离成2部分等差子序列0 2 4和1 3 5然后组合成一个新的序列0 2 4 1 3 5。这样做的话,可以保证前半部分无法和后半部分组合成等差数列。证明:一个序列的等差是k,首项为a1,序列为,a1, a1+k, a1+2k, a1+3k ... a1+(n-1)k。分成的两部分为a1, a1 +原创 2014-10-18 19:04:56 · 915 阅读 · 0 评论 -
CodeForces 578C Weakness and Poorness(三分法+最大子段和)
题意: 题目定义了两个变量: poornesspoorness表示一个区间内和的绝对值。 weaknessweakness表示一个所有区间最大的poornesss 题目要求你求一个xx使得 a1 − x, a2 − x, ..., an − xa_1 - x, a_2 - x, ..., a_n - x这个序列的weaknessweakness最小 输出最小的wea原创 2015-09-19 10:17:56 · 1694 阅读 · 0 评论