首页 > 其他分享 >倍增

倍增

时间:2024-09-29 15:33:31浏览次数:8  
标签:二分 log text dfs LCA 倍增

倍增-总结

序列

前2题题意:https://blog.csdn.net/weixin_52536621/article/details/127104830

区间分段

考虑进行预处理每个数如果只能有一段到达的位置,再进行倍增,最后倍增跳跃即可。

最优贸易简化版

预处理每个点向后走 \(2^j\) 不的最小买入价格、最大卖出价格、最大收益。

天才ACM

这题真正把二分和倍增拉开差距了。如果用二分,每次需要 \(O(n\log n)\) 的时间,那么如果段很小,那么需要 \(O(n^2 \log n)\),如果用倍增,只需要将其拆解成 \(\log\) 段,每段是 \(O(n\log n)\),那么则只需 \(O(n\log^2 n)\),效率远超二分。如果再用二路归并优化,只对新增部分排序,那么可以进一步优化成 \(O(n\log n)\)。

https://www.acwing.com/activity/content/code/content/5464657/

树上

LCA+习题

母题-P3379 【模板】最近公共祖先(LCA)

https://www.luogu.com.cn/article/oatnrw81

P1084 [NOIP2012 提高组] 疫情控制

最小值问题,考虑二分,然后贪心地让每个军队尽可能往上(使用倍增)。

运输计划

最小值问题,考虑二分,然后根据 \(mid\) 删边,运用树上差分求满足公共要求的路径,对于每个点求子树和,注意求子树和可以利用 dfs 序的逆序

天天爱跑步

由于每个玩家是一条路径,运用树上差分标记玩家,注意记录的值可以没有意义

其他技巧

若干点 \(\text{LCA}=\text{LCA}(\text{dfs序}\min, \text{dfs序}\max)\)

总结

线性的倍增

一般记录从位置 \(i\) 往后跳 \(2^j\) 步的信息;

树上的倍增

一般记录从点 \(i\) 往父节点方向跳 \(2^j\) 步的信息;

可以与二分结合,也可能在某些问题的处理上优于二分。

可以与树上的其他知识点,如 dfs 序、差分。

标签:二分,log,text,dfs,LCA,倍增
From: https://www.cnblogs.com/wscqwq/p/18440102

相关文章

  • 洛谷题单指南-分治与倍增-P4155 [SCOI2015] 国旗计划
    原题链接:https://www.luogu.com.cn/problem/P4155题意解读:在m个点的环上,有n个区间,且各个区间之间没有包含关系,计算从每个区间开始,最少要多少个区间能覆盖环上所有m个点。解题思路:本质上是一个区间覆盖问题!1、破环成链由于题目中是一个环,对于环的问题,在区间DP中介绍过,经典处理......
  • 洛谷题单指南-分治与倍增-P3517 [POI2011] WYK-Plot
    原题链接:https://www.luogu.com.cn/problem/P3517题意解读:有n个连续的点p1,p2,...,pn,将这n个点分成不超过m堆,每堆点连续,每一堆都缩成一个点qi,要使得原来的点p1~ps距离qi的最大值最小(最相似),求这个相似度,并计算一共分成几堆,以及每堆缩到的点qi的坐标。解题思路:要使得若干点缩到一......
  • 智能同步,效率倍增:Ftrans文件自动化实时同步技术革新!
    随着企业结构分散化,企业内部数据流转更加频繁,为了保证数据在不同平台和设备之间的一致性和可用性、保障数据的安全性并有效支撑业务开展,越来越多的企业需要将内部数据在多个数据中心之间、多台服务器之间、多云和本地间进行服务器文件自动化实时同步处理。通过同步软件,企业能够更......
  • 洛谷题单指南-分治与倍增-P3509 [POI2010] ZAB-Frog
    原题链接:https://www.luogu.com.cn/problem/P3509题意解读:n个点,每个点上有一只青蛙每次跳到距离自己第k近的点,m次之后跳到哪个点。解题思路:1、计算距离每个点第k近的点,存入ne[N]给定一个点i,距离i第k近的点一定在长度为k+1个点的窗口内,窗口包括i并且,第k近的点只能是左端点或者......
  • 洛谷题单指南-分治与倍增-P2345 [USACO04OPEN] MooFest G
    原题链接:https://www.luogu.com.cn/problem/P2345题意解读:有n头牛,每头牛都有听力v、坐标x两个属性,要计算每两头牛的max{vi​,vj​}×∣xi​−xj​∣之和。解题思路:首先想到的肯定是枚举法,需要O(n^2)的复杂度有没有优化的方法?可以采用分治法!由于是计算两头牛之间的max{vi​,......
  • 洛谷题单指南-分治与倍增-P2415 集合求和
    原题链接:https://www.luogu.com.cn/problem/P2415题意解读:计算集合所有子集中元素之和。解题思路:集合的特性:互异性,元素各不相同来看样例:23,可以组成的子集有空23232和3都出现2次再比如:123,可以组成的子集有空12312 13231231,2,3各出现4次由于在集合中......
  • 洛谷题单指南-分治与倍增-P7167 [eJOI2020 Day1] Fountain
    原题链接:https://www.luogu.com.cn/problem/P7167题意解读:从喷泉任意一个圆盘倒水,水流经的圆盘直径必须递增,水最后流到哪个圆盘。解题思路:1、枚举法有30%的数据范围在N<=1000,Q<=1000,因此枚举也可以得到30分。可以通过单调栈预计算每个圆盘后面第一个直径更大的圆盘位置Next[......
  • Cursor:倍增工作效率的编程工具
    哪个编程工具让你的工作效率翻倍?在现代开发中,选择一个合适的编程工具能够显著提升工作效率。Cursor编译器以其简洁的界面、智能化的代码功能和灵活的插件系统,帮助开发者更高效地编写、检查和优化代码。本文将详细介绍Cursor的功能特点、使用场景,特别是它如何通过人工智......
  • 洛谷题单指南-分治与倍增-P1226 【模板】快速幂
    原题链接:https://www.luogu.com.cn/problem/P1226题意解读:快速幂模版题。解题思路:1、分治法要计算a^b,可以对b分情况讨论:如果b是偶数,即b=2t,a^b=a^t*a^t如果b是奇数,即b=2t+1,a^b=a*a^t*a^t很容易用递归实现100分代码:#include<bits/stdc++.h>usingnamespa......
  • 洛谷题单指南-分治与倍增-P1966 [NOIP2013 提高组] 火柴排队
    原题链接:https://www.luogu.com.cn/problem/P1966题意解读:计算两个序列∑(ai​−bi​)^2的最小值,对10^8-3取模。解题思路:1、贪心思路要使得两个序列对应位置元素之差的平方和最小,必须满足两个序列相对排序是一致的,什么意思?设a序列有两个元素:a1,a2,b序列有两个元素b1,b2当a1<a2,b......