算法笔记-二分查找和二分答案
自己的二分查找板子
judge函数是关键
while(l<=r){mid=(l+r)>>1;if(judge(mid))l=mid+1;else r=mid-1;}
cout<<l-1;
lower_bound和upper_bound
lower_bound
ans=(a.begin(), a.end(), x );
求得第一个大于等于x的值的地址
所以求位置时要 -a;
ans=lower_bound(a+1,a+1+n,x)-a;
ub求第一个大于x的值的地址;
luogu p2678 跳石头
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[1000005];
int n,c,ans,x,s,t;
int l,r,mid;
bool judge(int x){int sum=0;int num=0;for(int i=1;i<=c;i++){if(a[i]-num<x){//**这里的num是关键,如果这个石头要选择被移开才更新num**sum++;}else num=a[i];}if(sum<=t)return true;return false;
}
signed main(){cin>>n>>c>>t;for(int i=1;i<=c;i++){scanf("%d",&a[i]);}r=n;l=0;while(l<=r){mid=(l+r)>>1;if(judge(mid))l=mid+1;else r=mid-1;}cout<<l-1;return 0;
}
算法笔记-二分查找和二分答案相关推荐
- 第十九章:二分查找和二分答案
二分查找 二分的思想在程序设计中有着广泛的应用,例如,排序算法中的快速排序.归并排序,数据结构中的二叉树.堆.线段树等.二分是一种常用且高效的算法,它的基本用途是在单调序列中进行查找和判定操作. 二分 ...
- 牛客题霸 二分查找 C++题解/答案
牛客题霸 二分查找 C++题解/答案 题目描述 请实现有重复数字的有序数组的二分查找. 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一. 示例1 输入 复制 5, ...
- 查找算法--01 顺序查找和二分查找
目 录 1. 顺序查找 1.1 顺序查找介绍 1.2 顺序查找适用范围 1.3 顺序查找代码实现 2.二分查找 2.1 二分查找介绍 2.2 二分查找适用范围 2.3 二分查找代码实现 2. ...
- 算法笔记4.5.2二分扩展:凸多边形的外接圆之最大半径
算法笔记4.5.2二分扩展:凸多边形的外接圆之最大半径 二分法求外接圆最大半径 题目描述 思路: 代码如下 二分法求外接圆最大半径 题目描述 给出N个线段长度,试将它们头尾相接组合成一个凸多边形,使凸 ...
- Python数据结构与算法篇(五)-- 二分查找与二分答案
1 二分法介绍 1.1 定义 二分查找又称折半查找.二分搜索.折半搜索等,是一种在静态查找表中查找特定元素的算法. 所谓静态查找表,即只能对表内的元素做查找和读取操作,不允许插入或删除元素. 使用二分 ...
- python 二分查找_二分查找算法总结
二分查找的思想是通过每次折半快速找到一个数,例如,我们经常玩的游戏猜数字,在0~1000,随便出一个数字98让对方猜,首先猜500,对方给提示比500大还是小,如果数字小于500,就继续猜250,依次 ...
- 二分查找和二分答案(洛谷)
细节好可怕~ 二分查找算法的细节剖析_JackComeOn的博客-CSDN博客原文:https://www.cnblogs.com/kyoner/p/11080078.html我周围的人几乎都认为二分 ...
- 查找算法-(顺序查找、二分查找、插值查找、斐波那契查找)
1)顺序查找或叫线性查找 就是顺序遍历匹配 2)二分查找 package search;public class BinarySearch {/*** 二分查找数组必须有序*//**** @param ...
- python递归实现二分查找_python二分查找算法的递归实现
本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 ...
- python递归实现二分查找_python二分查找算法的递归实现方法
本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 ...
最新文章
- python manager详解_Python通过Manager方式实现多个无关联进程共享数据
- 需求分析--12章 过程建模
- 将DataFrame中的每一列分别做归一化处理的函数实现
- ASP.NET Web API 处理架构
- 收藏这些芯片原厂的代码仓库
- linux 2.6 添加系统调用,在Fedora 13里编译内核(linux-2.6.36)+添加系统调用
- 分类算法学习(一)——KNN算法的原理及简单实现
- idea 从svn 下载项目
- 阿里 OSS AccessDenied You are denied by bucket referer policy.
- 江湖有故人!欢迎来到程序员的江湖
- ubuntu解决微信无法输入中文
- 大力哥谈 DALI - DALI 电源调试和配置参数揭秘
- hive的引擎mapreduce、tez和spark三者比较
- 5G无人机,到底有什么特别?
- 俄罗斯电商平台ozon的崛起,卖家可以使用测评补单方式打造爆款吗?
- RabbitMQ几种工作模式,实现延时消息的两种案例
- 5.24黄金短线上涨能否继续做空?今日如何布局
- 网络教育计算机统考40分单选,2021年6月网络教育统考《计算机应用基础》统考必过题库最全试题及答案...
- Axure原型——能在手机上演示的高保真移动端元件库
- 50hz 60hz 级联 陷波器,卫星导航接收机陷波器级联抑制窄带干扰研究
热门文章
- linux tab 缩进,codemirror TAB 缩进问题记录
- word wrap java控制台_word wrap 解惑
- 数据库习题(填空题五)
- C++:DFS求最优路径
- Jupyter notebook、JypterLab的本地安装与使用
- python中字符串转元组时的小技巧
- php 编译 sass,如何在Symfony 3中使用纯PHP编译SASS(scss)
- activity 工作流_智能风控决策引擎系统可落地实现方案(二)决策流实现
- 点击列表高亮_办公小技巧:妙用条件格式 高亮显示查询结果
- 全局 快捷键_表格快捷键