ACM入门之【二分】
二分分为:
- 整数二分
- 浮点数二分
二分可以解决的问题:如果它左边的区间不满足条件,右边区间都满足条件。
那么就可以用二分O(log2n)
的时间复杂度解决问题。
模板
bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用:
int bsearch_1(int l, int r)
{while (l < r){int mid = l + r >> 1;if (check(mid)) r = mid; // check()判断mid是否满足性质else l = mid + 1;}return l;
}
// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用:
int bsearch_2(int l, int r)
{while (l < r){int mid = l + r + 1 >> 1;if (check(mid)) l = mid;else r = mid - 1;}return l;
}
bool check(double x) {/* ... */} // 检查x是否满足某种性质double bsearch_3(double l, double r)
{const double eps = 1e-6; // eps 表示精度,取决于题目对精度的要求while (r - l > eps){double mid = (l + r) / 2;if (check(mid)) r = mid;else l = mid;}return l;
}
入门题:
789. 数的范围
790. 数的三次方根
中等题
矩阵
一生之敌
ACM入门之【二分】相关推荐
- C语言oj学生成绩输入和输出,『ACM入门』蓝桥杯ACM训练系统基本输入输出教程
在介绍训练场的OJ系统之前,首先为大家介绍一下ACM: ACM原代表美国计算机协会,因其举办的ICPC即国际大学生程序设计竞赛而闻名全世界,此项赛事要求学生的在五小时内解决全英文问题,并在效率和速度以 ...
- c语言记忆化搜索,HNUSTC语言基础简单数据结构acm入门第一讲搜索.ppt
C语言基础,简单数据结构,ACM入门讲座搜索部分 Bjut:mark063 2010.10.30 1 Evaluation only. Created with Aspose.Slides for . ...
- ACM入门及STL简介(转)
第一章 新手入门 1. ACM国际大学生程序设计竞赛简介 1) 背景与历史 1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕. ...
- 【转载】ACM入门 .
初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. ( ...
- ACM入门指南[转]
前言: 这篇指南不对ACM/ICPC国际大学生程序设计竞赛进行介绍,计算机学子如果不了解的可以在百度上进行搜索查询,这里介绍的只是一个计算机学生想要在ACM/ICPC里进行发展的初学者.内容比较简单通 ...
- ACM入门之【分块习题】
目录 6277. 数列分块入门 1[区间修改 单点查询] 6278. 数列分块入门 2[区间加 区间查询小于x的个数] 6279. 数列分块入门 3[区间修改 区间查询小于x的最大值] 6277. 数 ...
- ACM入门之【搜索】
搜索在ACM中是很重要的. 搜索一般分为DFS和BFS两大类,下面又划分很多的小类. 入门习题: 842. 排列数字 843. n-皇后问题 844. 走迷宫 845. 八数码
- ACM入门之【读入、输出优化】
本文主要是基于oiwiki的做的总结,未来也会做一系列的相关文章.如果想继续看的话可以关注专栏. 做这个专栏的目的是因为自己最近开始系统的再打一下基础.于是想写一个专栏便于喜爱ACM的初学者入门. 目 ...
- ACM入门及STL简介
1. ACM 国际大学生程序设计竞赛简介 1) 背景与历史 1970 年在美国TexasA&M 大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕.1977 ...
最新文章
- Java -cp 使用
- Java设计模式—责任链模式
- xe7 Unresolved external CSPIN.OBJ
- Oracle逻辑空间管理
- OpenCASCADE:使用 扩展数据交换XDE之形状和组件
- python—os模块、时间模块
- 表单标签 input
- jq获取页面高度_JQuery获取页面高度宽度
- ATL之深入浅出书评(转)
- 从维基百科到裴松之注三国志
- 分布式配置管理平台VS统一集中配置管理
- Filebeat日志收集
- java excel 水印_Java 添加Excel水印
- Opencv-获取两点之间距离
- 流程图基础绘制方法和流程图制作软件功能详解
- win10svn图标(绿色勾)不显示
- 【tool】动态注释LOG_NDEBUG宏定义
- 2023年的一些规划和想法
- 2022-2028年中国猪肉分割肉行业市场研究及前瞻分析报告
- cmd+查看远程服务器端口,CMD下查3389远程端口
热门文章
- [pymongo] pymongo.errors.CursorNotFound Exception
- 读书不言迟,不读终身痴[转]
- 用筛选法求100以内的素数(数组)
- Winform 导出成Excel打印代码
- dingo php,用laravel dingo/api创建简单的api
- CRF++:一个 CRF 工具包
- socket通信(5)4次挥手
- 区块链BaaS云服务(35)亦笔科技ODRChain使用场景
- 区块链BaaS云服务(29) 溪塔科技 CITA-Cloud 二
- C++ Primer 5th笔记(chap 14 重载运算和类型转换)函数匹配与重载运算符