随笔分类 - 二分答案
摘要:一、版本的插入二分排序 #include <bits/stdc++.h> using namespace std; const int N = 6; int a[N] = {3, 2, 1, 4, 5, 7}; void BinInsertSort(int a[], int n) { fo
阅读全文
摘要:## 一、题目描述 二、题目解析 这道例题看到时毫无头绪,因为课程是二分,所以往二分的方向想,猜到是 二分枚举最上面的那个数是多少,但依然不会做。 事实上,因为我们求得是 中位数,所以每个数对我们来说 只有与枚举的数的大小关系 需
阅读全文
摘要:二分总结 命名规则 为描述方便,下面文中提示的: 升序理解为不降序,即按顺序输入的数字,每个数字对比前面的数字,可等于可大于,但不能小于。 降序理解为不升序,即按顺序输入的数字,每个数字对比前面的数字,可等于可小于,但不能大于。 一、函数定义与用途 用途:
阅读全文
摘要:## . 特殊排序 前导知识 一、题目描述 有 个元素,编号 ,每一对元素之间的大小关系是确定的,关系具有反对称性,但 不具有传递性。 注意:不存在两个元素大小相等的情况。 也就是说,元素的大小关系是 个点与 $\frac{N×(N−1)}{
阅读全文
摘要: . 最佳牛围栏 一、题目描述 农夫约翰的农场由 块田地组成,每块地里都有一定数量的牛,其数量不会少于 头,也不会超过 头。 约翰希望用围栏将一部分 连续的田地 围起来,并 使得围起来的区域内每块地包含的牛的数量的平均值达到
阅读全文
摘要:## [/]排序 一、题目大意 给一个序列, 两种操作, 一种是将里所有数升序排列, 一种是降序排列。 所有操作完了之后, 问你等于多少。 二、解题思路 由于将一个普通序列排序很慢,需要的时间,可以转化为
阅读全文
摘要: . 繁忙的都市 一、题目描述 城市是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造。 城市的道路是这样分布的: 城市中有 个交叉路口,编号是 ∼,有些交叉路口之间有道路相连,两个
阅读全文
摘要:题目传送门 一、为什么可以使用二分,怎么想到的? 每段和的最大值最小。,提示的很明显,什么最大值最小,最小值最大等等,均可以视为二分答案题。为啥呢?因为二分的本质是区间逼近,这样才能求出极值,不用二分你说用啥? 二、二分查找的是什么? 本题查找的肯定是每段和的最大值,逼近的是让它最小。 三、左右边界
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 100010; int a[N]; int L;//表示公路的长度 int n;//原有路标的数量 int k;//最多可增
阅读全文
摘要:理解 1、check(int x) 检查x是否满足某种性质 2、模板1为:满足条件向左逼近,不满足条件向右逼近。如果有多个满足条件的数据,返回最左边那个。 3、模板2为:满足条件向右逼近,不满足条件向左逼近。如果有多个满足条件的数据,返回最右边那个。 4、yxc大佬的模板,适用于二分查找和二分答案。
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; typedef long long LL; //典型的二分答案题, 答案为最短(可以理解为最小)的跳跃距离最大值 int L; int n, m; const int N = 50010; int
阅读全文
摘要:题目传送门 无脑的二分答案模板,锻炼写一下check函数吧。 同时有一点需要注意,就是的初始值不能是0!,否则第四个测试点RE掉! #include <bits/stdc++.h> typedef long long LL; using namespace std; const int N =
阅读全文
摘要:题目传递门 本题是一道二分答案的板子题,有一点点贪心。 总结: 1、与的确定,我喜欢使用数组排序来获取最终的最大值,即;而不一定是数组的最小值,这个和题意有关,也可能是。 2、即然是二分答案的模板题,那板子是必须的,另一个重要的问题就是函数了,它需要检查什
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e6 + 10; int a[N]; int n; LL m; bool check(int x) { LL sum =
阅读全文