PAT|木棒切割问题(二分)---算法笔记4.5.2二分法拓展
文章图片
#include
#include
#include
using namespace std;
const int maxn = 10010;
int main() {
int a[maxn];
int n,k;
cin >> n;
cin >> k;
for(int i=0;
i> a[i];
}
sort(a, a+n);
int left = 0, right = a[n-1], mid;
while(left+1 < right) {
int count = 0;
mid = (left + right) / 2;
for(int i=0;
i
【PAT|木棒切割问题(二分)---算法笔记4.5.2二分法拓展】套用的二分搜索的模板
int solve(int A[], int left, int right, int x) {
int mid;
while(left + 1 < right) {
mid = (left + right) /2;
if(条件成立) {//条件成立,第一个满足条件的元素的位置<=mid
right = mid;
//往左子区间 [ left , mid ] 查找
} else {//条件不成立,则第一个满足该条件的元素的位置>mid
left = mid;
//往右子区间 [ mid , right ] 查找
}
}
return right;
//返回夹出来的位置
}
推荐阅读
- Python(pathlib模块)
- Realm
- View·dispatchTouchEvent|View·dispatchTouchEvent 源码分析(四)
- 古有商鞅变法,今有Pathways攻占头马
- 运行报错Cannot|运行报错Cannot find module '@babel/compat-data/corejs3-shipped-proposals’
- java代码实现空间切割
- C#|C# 文件路径操作
- mac升级之(xcrun:|mac升级之:xcrun: error: invalid active developer path, missing xcrun)
- ContextCompat
- 《七天爬虫进阶系列》|《七天爬虫进阶系列》 - 02 数据解析之 XPath