![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-----二分
litmxs
博客内容如有错误,还望指正
展开
-
K-th Number POJ - 2104 平方分割/线段树
题目链接:K-th Number POJ - 2104题目大意,大小为n的数列a1-an,m次询问,格式为i,j,k,意思是ai-aj中第k小的数。(n<1e5,m<5e3)挑战程序设计竞赛上的两种解法。核心思路都是一样的,设计某种一个数据结构,能快速求出i-j中小于等于x的元素个数,然后二分答案。平方分割: 将n个元素分成sqrt(n)个部分,每个部分内部都拍好了序,这样一个完整部分内部小于等于原创 2017-03-28 20:54:25 · 635 阅读 · 0 评论 -
Codeforces Round #415 (Div. 2) D. Glad to see you! 二分, 交互
题目链接:Glad to see you!题目大意n个菜, 编号从1-n, 其中有k个菜被点了, 你每次可以猜x, y两个数字, 如果|x-a|<=|y-b|交互器会返回"TAK", 否则返回"NIE", 其中a是离x最近的一个被点过的菜的编号, a可以等于x, b同理 要求在60次内猜出任意两个被点了的菜 n<=1e5思路60次以内猜出, 肯定是logn级别的复杂度, 也就是二分 交互器返回原创 2017-06-28 21:03:43 · 240 阅读 · 0 评论 -
Codeforces Round #414 B. Cutting Carrot 几何二分
题目链接: Cutting Carrot题目大意一个等腰三角形, 底边长为1, 高为H, 要等分成n分, 求怎么切思路可以推出公式来, 懒得推, 直接二分好了, 浮点数的二分好好写代码#include <bits/stdc++.h>using namespace std;const int MAXN = 1100; const double eps = 1e-10;double cal(double原创 2017-06-28 21:32:27 · 321 阅读 · 0 评论 -
Codeforces Round #413 C. Fountains 二分
题目链接: Fountains题目大意: n座喷泉, 每座喷泉有三个属性, 1. 建造所需要的材料(硬币或钻石), 2. b:美丽值, 3. p:建造所需材料数量, 一个喷泉只用一种材料 你有c个硬币, d个钻石, 建造两座喷泉, 求美丽值最大为多少, 如果无法建造两座喷泉, 输出0解题思路分三类情况讨论 1. 一座使用硬币, 一座使用钻石, 直接分别遍历两个集合(硬币建的和钻石建的喷泉), 求原创 2017-06-29 21:22:50 · 271 阅读 · 0 评论 -
Skills CodeForces - 614D 二分
题目链接: Skills CodeForces - 614D 大意有n项技能, 每项技能的等级为aia_i, 技能最大等级为A, 能力值=等级为A的技能数量⋅cf+minaai⋅cm能力值 = 等级为A的技能数量\cdot c_f + mina a_i \cdot c_m 现在有m个技能点(一个技能点可以将一个技能升一级, 达到A后就不能再升了), 求能达到的最大能力值思路二分 想要提升能力值,原创 2017-07-21 21:31:09 · 340 阅读 · 0 评论 -
二分和三分总结与误区分析
今天学一个新算法的时候, 突然发现我以前的二分一直有点问题, 虽然以前的写的二分都能AC, 但还是有些问题, 如果题目给出的区间内没有解, 我的二分可能就会出问题. 所以干脆把所有二分三分思路整理一下. 加上更久之前发现自己三分写法的问题, 感觉自己能有些题目能AC真是运气好整数二分二分的坑点主要在整数的二分, 如果没有写好会出现死循环的问题.二分的原理是利用区间内值有序的特点, 不断让可行区间减半原创 2017-10-08 16:34:39 · 692 阅读 · 0 评论 -
Codeforces 779D 二分求上界 Codeforces Round #402 (Div. 2)
题目链接:Codeforces 779D两个字符串,t,p,给定一个删除顺序,依次从t中删除字符,问最多删除多少个字符,剩下的字符串,删除部分字符后能得到p。 例如第一组数据: ababcba abb 5 3 4 1 7 6 2 删除顺序是先删第5个字符c,再删第3个字符a以此顺序,最多删除3个,得到,ab***ba这个字符串,只要在把最后的a删去就还能得到abb,但是如果按上面的顺序,再原创 2017-02-26 20:50:21 · 476 阅读 · 1 评论 -
POJ - 1743 Musical Theme 后缀数组 二分
题目链接: POJ-1743 Musical Theme 题目大意一个数组有n个元素, 求最长重复出现(不重叠)的子串的长度, 要求长度大于等于5, 并且如果一个串每个数字加上同一个值等于另一个子串, 视这两个子串相同(1 2 3和4 5 6相同)思路相邻元素作差得到另一个数组, 然后就化简成了求一般的最长重复出现的子串长度了 对新数组求高度数组, 高度数组有一个特性, 其大小变化一定是大->小,原创 2017-10-14 20:43:34 · 202 阅读 · 0 评论 -
POJ - 3261 Milk Patterns 后缀数组 二分
题目链接: POJ - 3261 Milk Patterns题目大意一个数组, 求至少出现k次的最长子串思路求出高度数组, 二分子串长度求解 check时, 对高度数组中每个所有元素的大于等于mid的区间, 统计区间长度如果大于等于k, 就返回true, 如果都小于k, false代码#include <iostream> #include <cstdio> #include <cstring>原创 2017-10-14 20:52:46 · 193 阅读 · 0 评论