二分-三分
lklklklklx
sdasd
展开
-
codeforce 439D 二分或者三分
就是给你两个数组,要求经过一系列操作(把组中任意元素加一或减一),第一个数组的最小值大于等于第二个组的最大值,求操作最小的数量。 很显然一定是把所有的数都变为一个数组中原有的数,首先暴力的话,O(mn)的复杂度,1e10一秒必T. 一.二分搞起 我们枚举一个数组的数的时候,我们可以二分求出它在另一数组中的位置,然后利用前缀和搞定。复杂度O(mlogn+nlogm)。原创 2015-05-28 11:13:03 · 361 阅读 · 0 评论 -
三分算法-理解,模板
三分模板以前也用过,就是没怎么想过具体的。 今天看了一些博文,写一些自己的东西。 一.适用于上凸或下凸曲线(比如开口向上或者向下的抛物线),可以确定曲线的最值。 二.复杂度 O(2log3n)比二分慢一点。 三.具体实现 1.最大值 l 左边界 r 右边界 mid (l+r)/2 midmid (r+mid)/2 if(solve(mid)>solve(m原创 2015-05-28 17:28:31 · 289 阅读 · 0 评论 -
codeforce Looksery Cup 2015 H Degenerate Matrix
比赛的时候知道肯定是是二分写的,还是写挂了。。。 要||A-B||最小,那么四个的绝对值肯定是一样的,当时傻了,直接两个判正,两个判负,我们可以二分枚举d,符号一共四种情况, 假设a=[ a b c d],那么B的ac :(a-m)(c-m).(a-m)(c+m). (a+m)(c-m) .(a+m)(c+m),bd同理。我们要求的是ac==bd,在二分的过程中如果ac的最小值大于bd的最大值,原创 2015-06-07 16:43:45 · 411 阅读 · 0 评论