Binary Search(二分搜索)
Zeolim
这个作者很懒,什么都没留下…
展开
-
[二分] [计算几何] AtCoder Beginner Contest 144 D Water Bottle
题意:给定一底面积为正方形的方体并装入x体积的水,问最大倾斜角度使得水不流出如图所示只有两种情况且面积具有单调性 二分求解即可/* Zeolim - An AC a day keeps the bug away*/ //#pragma GCC optimize(2)//#pragma GCC ("-W1,--stack=128000000")#include &l...原创 2019-10-27 22:48:26 · 212 阅读 · 0 评论 -
[Codeforces] 592 div2 A B D E
A - Pens and Pencils emm题意忘了B - Rooms and Staircases 有两层房子,每层有k间 每间要么是0要么是1 0只能左右, 1可以上下 问最多能走多少间。不用考虑上下左右来回走,枚举每个转折上面走最大下面走最大更新极值即可,来回走必然不如这样优/* Zeolim - An AC a day keeps the bug aw...原创 2019-10-24 21:25:44 · 253 阅读 · 0 评论 -
Codeforces Round #521 (Div. 3) D. Cutting Out
D. Cutting Outtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an array ss consisting of nn integers.You have to ...原创 2018-11-18 19:30:00 · 172 阅读 · 0 评论 -
[模板] 结构体使用CMP SORT 二分 的技巧 (重载) 应用51nod 四个数和为零
一千组数据,枚举出所有任意两个数的组合,一共1000 * 1000组记录组合来的下标 然后二分查相反数并查重。#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int MAXN = 1010;int a[MAXN] ;str...原创 2018-05-21 21:10:56 · 260 阅读 · 0 评论 -
[专题总结] 二分搜索专题
1.1从有序数组中查找某值 //数组长 目标值 int n, k; int arr[n]; void solve() { sort(arr, arr + n); int fst = -1, lst = n, mid; while(lst - fst > 1) { ...原创 2018-11-12 21:28:49 · 263 阅读 · 0 评论 -
[牛客寒假算法基础集训营6总结]
A.[简单数学思维递推]易得m题所组成所有分数集合中极小值m*6 极大值m*9, 因其子和差值均一, 则有若干组合组成连续闭区间[6*m, 9*m]易推得6数极小时应有其余三数组合极大 则有公式ans = max(-(n - m * ll(6)) + m, ll(0)) (未化简)---------------------------------------------...原创 2019-04-03 15:49:31 · 479 阅读 · 0 评论 -
[模板]三分搜索
三分思想是二分的一个简单延展二分区间要求是简单线性变换而对于二次函数等单 峰 / 谷 函数无法获得正确的逼近趋向而三分搜索可以解决这样的问题设左右两三分点 X, Y若F(X) > F(Y) 则有 X = A&&Y = B 或 X = A &&Y = C; 则必定有峰在X 右侧同理 则必定...原创 2019-03-13 19:05:39 · 200 阅读 · 0 评论 -
[模板][二分]倍增及其应用
基础入门给定数组 和 数字T, 求最大位置K 满足 sum(1 - k)<= t;最简单的想法就是 前缀和 + 二分, 每次查询时间复杂度log(n), 对于数列最左端的数据没有必要这里的倍增可以理解为二分的改良优化版,设K点为0, P点为11. 每次试从当前点K往后加P个数是否小于T以log速度快速使K逼近答案点2.随后再把P值快速缩向条件1, 返回1当P...原创 2019-04-07 09:25:48 · 289 阅读 · 0 评论 -
[模板][倍增] ST算法 RMQ 区间中最大得值
ST算法是区间倍增保存信息的典型例子树高log2(n) + 1, 第i行的每个结点保存从原数组当前位之后 (1 << (i - 1)) 的最大值很容易发现最大值不断传递并符合通式rmq[i][j] = max(rmq[i - 1][j], rmq[i - 1][j + (1 << (i - 1) )]);查询时把区间分成可以交叉的两部分 l 到 l + 2...原创 2019-04-07 09:24:42 · 240 阅读 · 0 评论 -
[可持久化权值树] Cutting Bamboos
题意:给定区间, 切y次将区间内的树全切完,每次切掉的所有和相同切每次都是高度为h的横刀(区间高于h的值全部变为h),求第x次切的高度解题思路:第x次切的高度不知道,但是第1 - x次一共切掉的高度和剩下的高度可以O1计算而出可持久化权值树记录cnt和sum二分枚举一个高度,使得区间内所有高于此高度的权值变为此高度, 剩下的和刚才O1算出的比较即可在权值树上查询等同于找...原创 2019-09-09 23:06:39 · 205 阅读 · 0 评论 -
[Python语法练习]CF 591 C - Save the Nature
解题思路:二分check 代码比较长 所以拿来练习一下py语法总结:新建空listarr = []定义函数 def (参数1, 参数2, 参数3): return 任意类型列表python 默认向负无穷取整 整除 // 即为 C++ 的floor输入一个列表arr = [int(len) for len in input().split()]代...原创 2019-10-08 15:26:52 · 250 阅读 · 0 评论 -
Educational Codeforces Round 54 (Rated for Div. 2) C. Meme Problem
二分搜索推下方程把前半部分去掉/* Zeolim - An AC a day keeps the bug away*///pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#inc...原创 2018-11-13 11:32:19 · 363 阅读 · 0 评论 -
牛客小白月赛8 F-数列操作 (有序表)
链接:https://www.nowcoder.com/acm/contest/214/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述clccle是个蒟蒻,她经常会在学校机房里刷题,也会被同校的dalao们虐,有一次,她想出了一个毒瘤数据结构,便兴冲冲的把题面...原创 2018-10-20 21:42:19 · 188 阅读 · 0 评论 -
[二分答案][洛谷] P1316 丢瓶盖
水题#include <iostream>#include <algorithm>using namespace std;const int MAXN = 1e5;int arr[MAXN];int ans = 0;int N, M;bool find(int len){ int rit = 1, ritv = arr[0] + len...原创 2018-07-24 18:53:32 · 340 阅读 · 0 评论 -
[模板] [洛谷] 线性筛素数 P3383 P1865
P3383 线性筛素数重复筛bool check[maxn];ll n, m;void initprime(){ check[1] = check[0] = true; for(int i = 2; i <= n; i ++) { if(!check[i]) { for(int j = 2...原创 2018-07-30 17:17:44 · 219 阅读 · 0 评论 -
[二分] [51nod]1010 只包含因子2 3 5的数 lower_boud
#include <iostream>#include <algorithm>using namespace std;#define MAXN 1e18 + 998typedef long long ll;ll a[100010];int main(){ ll flag = 0; for(ll i = 1; i < MAXN; i *= 2) ...原创 2018-05-08 10:54:45 · 109 阅读 · 0 评论 -
[前缀和] [洛谷] P1147 连续自然数的和
最早的想法是推公式愣是没推出来菜逼只能暴力前缀和加二分前缀和不用算完由题意算到一半多点就可以了二分的时候要注意边界#include <iostream>using namespace std;const int MAXN = 2e6 + 10;typedef long long ll;ll arr[MAXN];int bsearch(in...原创 2018-07-31 12:10:40 · 436 阅读 · 2 评论 -
[洛谷] P2141 珠心算测验
基础题数据存入数组从后往前查每个数字能不能被该数字前的数字与该数字前的那个数字前的任一数字所组合成功二分查找成功计数代码如下#include <iostream>#include <algorithm>using namespace std;int a[2000010];bool dbfind(int x[],int len,int key...原创 2018-04-06 18:19:53 · 637 阅读 · 0 评论 -
[51nod] 1001 数组中和等于K的数对
1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对。例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0,8),(2,6),(3,5)。Input第...原创 2018-04-15 21:42:49 · 207 阅读 · 0 评论 -
[51nod] 1080 两个数的平方和
1080 两个数的平方和 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注给出一个整数N,将N表示为2个整数i j的平方和(i <= j),如果有多种表示,按照i的递增序输出。例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1种)Input一个数N(1 &...原创 2018-04-16 20:06:34 · 170 阅读 · 0 评论 -
[二分答案] P2920 Time Management
推导贪心条件排序二分输出 //#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>...原创 2018-08-25 23:01:00 · 156 阅读 · 0 评论 -
[二分] [洛谷] P1258 小车问题
浮点二分 加点要比eps小//#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>#include &...原创 2018-09-24 21:21:57 · 415 阅读 · 0 评论 -
[模板] LIS 最长递增子序列 / 最长递减子序列
O(nlogn)注意二分写法//#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>#includ...原创 2018-10-12 11:04:11 · 258 阅读 · 0 评论 -
[二分] [POJ] 2456 Aggressive cows
网上都是二分搜索答案其实过程也可以二分搜索洛谷有个扔瓶盖一样的#include <iostream>#include <algorithm> using namespace std;const int MAXN = 1e5 + 50;int cow[MAXN] = {0};int dis[MAXN] = {0};int N, C, ...原创 2018-07-24 17:42:15 · 195 阅读 · 0 评论