倍增
是什麼:一種非隨機的節省操作的思想
為什麼:節省時間
怎麼弄:將一步一步走轉化為20步、21步、22步、23步…走
應用:1、快速冪:由於11=1 * 23 + 0 * 22 + 1 * 21 + 1 * 20,故快速冪演算法計算311=38 * 32 * 31(具體怎麼算我不是很熟,貌似最大就只用算到8次方所以得出節省時間的結論?)
2、小兔子走路問題,超級兔的小抄確實讓它比普通兔節省了時間
st表(求區間最值問題)
是什麼:st本身是一種演算法,而st表的意思是用二維陣列實現其兩個引數的動態規劃本質
為什麼:省時間
怎麼弄:結合倍增思想,將乙個乙個單位為1的區間找最值轉化為logn個單位為2的冪次的區間找最值(也不太熟,又靠模板)
模板:博主真是太偷懶了ψ(`∇´)ψ哈哈以後會再編輯的啦~
ST表(倍增表)
介紹st表之前先看看rmq問題是什麼東西吧 rmq range maximum minimum query 顧名思義,這就是指區間最大或最小值 區間最值 st表 spars table,一種可以解決rmq的,基於倍增的資料結構 令 f i j 表示從 i 開始連續 2 j 個數中的最值,如果 i 後...
倍增法(ST演算法)
3.典型例題 演算法思想 st演算法,適用於rmq問題 區間最大值 也就是求出乙個序列中,數值最大的一項。樸素做法自然是一遍掃瞄找最大值,但是當題目詢問次數很多的時候,就很有可能超時,因此用倍增演算法來進行乙個優化。以下是st演算法求解rmq問題的實現 首先,我們用f i j f i j f i j...
倍增法與st
一篇部落格 最常用,也是最簡單的演算法,實質就是直接對暴力使用倍增優化將複雜度降低達到需求。有樹上的倍增和區間的倍增 depth 為每個節點的深度,fa i j i節點的 2 j 的父親。lg i log 2 1 const int maxn 5000001 int depth maxn fa ma...