二分
文章平均质量分 80
二分
Happig丶
我的孤独,虽败犹荣
展开
-
倍增问题总结
倍增当我们在进行递推时,如果状态空间很大,线性递推会超时,那么就选择成倍的增长方式,以递推状态空间中 2 的整数幂次作为代表值。根据任何整数都能表示为若干个 2 的幂次的和这一性质,使用之前求出的代表值拼出所需的值,这就是倍增。所以倍增要求递推的问题的状态空间关于 2 的幂次具有可划分性。题目分析树上倍增(LCA)传送门解题思路设数组 f[i][j]f[i][j]f[i][j] 代表节点 iii 的 2j2^j2j 辈祖先,若超出根节点范围用 0 代替。显然对于 jjj , f[i][j]=f原创 2021-08-24 19:55:39 · 866 阅读 · 0 评论 -
二分答案问题总结
二分答案对于给定的求解问题,该问题具有单调性。也就是说在所有可行域中,对于题目要求条件的判定在某个数的一侧一定是可行的,而另一侧是不可行的。于是我们可以把求解最优值的问题,转化为对值域的二分找到临界数的问题。常见的二分写法://整数域二分while (l <= r) { mid = (l + r) >> 1; if (check(mid)) { ans = mid; l = mid + 1; }else r = mid - 1;}while (l < r)原创 2021-08-07 11:58:50 · 240 阅读 · 0 评论 -
洛谷 P3743 kotori的设备(二分答案)
传送门题目大意给出n(1≤n≤1e5)n(1 \leq n \leq 1e5)n(1≤n≤1e5)个设备,每个设备有一个初始电量b(1≤a≤1e5)b(1 \leq a \leq 1e5)b(1≤a≤1e5)和耗电速率a(1≤a≤1e5)a ( 1 \leq a \leq 1e5)a(1≤a≤1e5),现在有一个充电速率为p(1≤p≤1e5)p(1 \leq p \leq 1e5)p(1≤p≤1e5)的充电器,当有设备电量降为0时视为结束,充电速率的意思是每秒可以给接通的设备充能ppp个单位,充能是连原创 2021-05-08 17:29:35 · 347 阅读 · 0 评论 -
2021字节跳动研发春招第五场笔试第三题
题目大意给出nnn个五元组pi={ai,bi,ci,di,ei}p_i = \{a_i,b_i,c_i,d_i,e_i\}pi={ai,bi,ci,di,ei},要从中选出2个五元组i,ji, ji,j,最终的得分为min{max(ai,aj),max(bi,bj),max(ci,cj),max(di,dj),max(ei,ej)}min\{max(a_i, a_j), max(b_i, b_j),max(c_i, c_j),max(d_i, d_j), max(e_i, e_j)\}min{原创 2021-04-13 20:50:57 · 549 阅读 · 0 评论 -
B 武辰延的字符串(哈希+二分)
传送门题目大意给定两个字符串s,ts,ts,t,问有多少对sss的非空前缀使得这对前缀拼接后恰好组成ttt的一个前缀。解题思路明显两个sss的前缀若能组成ttt的前缀,那么必定有一个前缀s2s_2s2拼在另外一个前缀s1s_1s1后面,为了防止重复我们可以枚举s1s_1s1,显然s1s_1s1也是ttt的前缀。这时不难发现当ttt除去s1s_1s1后,若剩下部分t−s1t-s_1t−s1和sss的最长公共前缀的长度为lenlenlen,那么对答案的贡献就是lenlenlen,而且满足二原创 2021-02-20 14:03:37 · 122 阅读 · 0 评论 -
HDU - 2899 Strange fuction(二分三分/爬山算法/模拟退火)
传送门题目大意现在有方程f(x)=6∗x7+8∗x6+7∗x3+5∗x2−k∗x(0≤x≤100)f(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-k*x (0 \leq x \leq 100)f(x)=6∗x7+8∗x6+7∗x3+5∗x2−k∗x(0≤x≤100),每次给出kkk,求该函数在[0,100][0,100][0,100]的最小值。解题思路方法一(二分/三分)首先不难分析,在第一象限该函数一定是一个凹函数图像,那么很轻松就想到用三分去写。实际上还可以二分,对上述函数原创 2020-11-09 21:02:34 · 218 阅读 · 0 评论 -
三分查找
前言类似于二分查找,三分查找法也是比较常用的基于分治思想的高效查找方法三分查找用于左边递增右边递减或者相反的,这一类函数也就是常说的凸函数和凹函数(参考一元二次方程的函数图像)凸函数或者凹函数总是有一个最大值或者最小值,这样就可以借此判断出三分法中两个中点相对相对于极值的位置三分搜索的实现主要是判断midl和midr所在值的大小:以凸函数为例(凹函数类似,只是判mid大小的时候保留小的即可[其实是保留离极值最近的mid]),先以left和right为端点计算出它们的中点midl,然后再以midl原创 2020-05-19 10:37:08 · 967 阅读 · 0 评论 -
二分查找
二分查找二分查找,它适用于有序的顺序表。思路是:首先将给定值与表中中间位置元素的关键字进行比较,若相等,则查找成功,返回该元素的存储位置;若不等,则所需查找的元素只能在中间元素以外的前半部分或者后半部分中。然后再缩小的范围内继续进行相同的查找,如此重复直到找到为止。如果确认表中没有所需查找的元素,则返回查找失败的信息。时间复杂度O(logn)mid如何求?除了 mid=(l+r)>&g...原创 2020-03-26 19:51:19 · 430 阅读 · 0 评论