文章目录

  • 1 概述
  • 2 例题

1 概述

倍增是一种思想,每次将考虑的范围扩大或减少一倍从而达到加速的效果,将某一步的O(n)优化到O(logn)

也就是一种自底向上的二分
如快速幂
顾名思义就是一倍一倍的增加。举个例子你每次可以跳2的k次方步。现在你要跳到距离7步的地方。

跳8步 跳过了(不跳)

跳4步 没跳到(跳)

跳2步 没跳到 (跳)

跳1步 跳到 (停)

这里就只跳了3次 比普通的7次跳发优化了4次;

如果数据很大就是O(n) 和 O(logn)的区别了;

2 例题

题目描述
小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零。可是小A偏偏又有赖床的坏毛病。于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟可以跑2^k千米(k是任意自然数)。当然,这个机器是用longint存的,所以总跑路长度不能超过maxlongint千米。小A的家到公司的路可以看做一个有向图,小A家为点1,公司为点n,每条边长度均为一千米。小A想每天能醒地尽量晚,所以让你帮他算算,他最少需要几秒才能到公司。数据保证1到n至少有一条路径。

输入格式
第一行两个整数n,m

python【数据结构与算法】倍增思想相关推荐

  1. Python数据结构与算法(1.1)——数据结构与算法导论

    Python数据结构与算法(1.1)--数据结构与算法导论 0. 学习目标 1. 数据结构概述 1.1 什么是数据结构 1.2 逻辑结构和物理结构 1.3 抽象数据类型 1.4 数据结构学习的必要性 ...

  2. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  3. python 数据结构与算法——排序

    文章目录 排序的分类 排序的复杂度 python 实现 冒泡排序 选择排序 插入排序 希尔排序 归并排序 堆排序 快排 树排序 线性时间排序算法 计数排序 桶排序 桶排序的复杂度分析 基数排序 排序的 ...

  4. Python天天美味(32) - python数据结构与算法之堆排序

    1. 选择排序 选择排序原理是先选出最小的数,与第一个数交换,然后从第二个数开始再选择最小的数与第二个数交换,-- def selection_sort(data):     for i in ran ...

  5. python数据结构与算法13_python 数据结构与算法 (13)

    python 数据结构与算法 (13) 选择排序 (Selection sort) 是? 种简单直观的排序算法. 它的? 作原理如 下.? 先在未排序序列中找到最?(?)元素, 存放到排序序列的起始位 ...

  6. python leetcode_leetcode 介绍和 python 数据结构与算法学习资料

    for (刚入门的编程)的高中 or 大学生 leetcode 介绍 leetcode 可以说是 cs 最核心的一门"课程"了,虽然不是大学开设的,但基本上每一个现代的高水平的程序 ...

  7. Python数据结构与算法(二)栈和队列

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

  8. Python数据结构与算法(一)列表和元组

    本系列总结了python常用的数据结构和算法,以及一些编程实现. 参考书籍:<数据结构与算法 Python语言实现> [美]Michael T.Goodrich, Roberto Tama ...

  9. Python 数据结构与算法——快排

    Python 数据结构与算法--选取算法(TopK) 如果说快速选取法所代表的是剪枝式的遍历操作--在递归树中找出一条通往第 k<script type="math/tex" ...

  10. Python 数据结构与算法——从二分图到寻找最大排列(Maximum Permutation)

    假设现在有 8 位有着特殊癖好的人去买票看电影,其中有一部分人得到了自己喜欢的座位,但大多数人并不满意.现在的问题是,如果这些人各自都有自己喜欢的座位(喜欢的座位有重叠,这是进行最大排列的前提,否则无 ...

最新文章

  1. oracle 参数=gt;,解析gt参数
  2. 7.git提交的前进与后退
  3. opencv中的push_back()函数
  4. MFC中UPD通信详细解说
  5. lm358数据手册_如何阅读运放的数据手册(1)查找数据手册
  6. PHP限制提交文章条数,限制WordPress文章页面修订版本(revision)数量
  7. python生成白噪声与纯随机检验——Ljung-Box检验
  8. c++程序员面试宝典
  9. msql--基础使用
  10. hl uoj1841 走格子
  11. java 将pdf转换成word_java实现pdf转word(文字)
  12. Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
  13. org.eclipse.core.runtime.CoreException: Plug-in org.eclipse.jdt.ui was unable to load class org.ecli
  14. 编译flink1.9.0 报flink-fs-hadoop-shaded找不到
  15. 高等数学:如何理解泰勒展开公式?等价无穷小与泰勒公式的关系是什么?
  16. Dear小弟×××,给你们的一封信「社区运营入门系列 序」
  17. 无频闪护眼灯哪个好?盘点四款无频闪的护眼台灯
  18. CPU巨型机,大型机,中型机,小型机和微型计算机中央处理器都称为CPU、MPU(微型化的CPU,在微机中CPU=MPU)、MCU和SOC
  19. 坏男人是丈夫的最佳人选
  20. 网络协议分析(3):FTP

热门文章

  1. EfficientNetV2 笔记
  2. ssd手 和方向检测
  3. ShuffleNetV2 centernet
  4. Python监控目录和文件变化
  5. ffmepg4 解码特别慢
  6. 华为RH8100v3巡检
  7. 企业内网中的WSUS更新服务 服务器连接到Microsoft Update来获取更新程序
  8. golang 关闭制定名称的 tomcat_Tomcat原理详解及请求过程
  9. 广东省一本大学哪些学计算机,2020年广东省内一本大学有哪些(一本大学一览表)...
  10. android置组件下面,Android Jetpack架构组件(十二)之Hilt