二分查找
樂_smile
这个作者很懒,什么都没留下…
展开
-
UVa 1623 神龙喝水(Enter The Dragon)
题意: 神龙可以在没有下雨的时候喝掉一湖水, 一开始所有河都有水,另外,如果一个湖已经有水了,再下雨,这个湖就会闹水灾,如果一个湖原本没水,下雨了,就满水了,此时不会闹水灾,问是否可以做到不闹水灾,如果可以输出“YES”,且输出不下雨天喝哪河的水,也可以不喝水,这个时候输出0,否则输出“NO” 分析: 紫书上说需要优化算法 看到1e6的数据,很自然的想到nlogn的算法 怎么样才可以nlogn呢?...原创 2019-11-28 23:07:35 · 221 阅读 · 0 评论 -
UVa 11536 最短子序列(Smallest Sub-Array)
题意: 有n个0~m-1的整数组成一个序列。输入k,你的任务是尽量找到一个短一点的连续子序列使得该序列包含1-k的所有整数。 最大序列是生成的,生成在代码中 分析: 二分查找一个位置,长度a不成立 b成立 那么答案就在 (a, b] 之间,也就是这个时候不成立,左端点 + 1 右端点成立,右端点可以不变,也就有了代码里面的check后的变化。 代码: #include<bits/stdc++...原创 2019-11-24 01:28:57 · 460 阅读 · 0 评论 -
UVa 1616 商队抢劫者(Caravan Robbers)
题意: 输入n条线段,把每条线段变成元线段的一条子线段,使得改变之后所有线段等长,且不相交。输出最大长度。例如有3条线段[2,6],[1,4],[8,12] 则最优方案变成 [3.5, 6] [1,3.5][8,10.5] 输出 5 / 2 分析: 这道题数据有点坑,我用 1e-9作为数据精度过不了 1e-10才过了。 思想是二分。 还有小数转分数的0.0方法 代码: #include<bi...原创 2019-11-17 12:47:12 · 184 阅读 · 0 评论 -
UVa 1607 与非门电路(Gates)
题意: 可以用与非门来设计逻辑电路。每个NAND门有两个输入端,输出为两个输入端与非运算的结果。即输出0当且仅当两个输入都是1。给出一个由m个NAND组成的无环电路,电路的所有n个输入全部连接到一个相同的输入x,如图8-22所示。 请把其中一些输入设置为常数,用最少的x完成相同功能。输出任意方案即可。 二分查找或许是因为对称性,LRJ提出来了,在观察完000 - 111 这个过程的变化中,貌似可以...原创 2019-11-09 18:23:48 · 495 阅读 · 0 评论 -
UVa 714 抄书(Copying Books)
题意: 把一个包含m个正整数序列划分成k个非空子序列,使得每个正整数恰好属于一个序列。设第i个序列的各数子和为S(i) 你的任务是让所有的S(i)的最大值尽量小。 分析: 首先由于k不小,因此无法暴力枚举。考虑二分复杂度为logM M为所有m的和,加上需要枚举一下所有的数,判断这个数是大了还是小了,因此需要O(n)的时间 总的就是 O(nlogM) 难点: 二分不难,难的地方在于,这道题要求前面的...原创 2019-11-09 09:48:45 · 157 阅读 · 0 评论