【算法學習】快速冪
快速冪可真是一個好東西
我覺得和高精度,或者快速冪模搭配
首先
快速冪是利用二進制表示指數,利用二分的思想來進行冪的運算
a^11=a^(1*2^0+1*2^1+0*2^2+1*2^3)
typedef long long LL; LL quick_pow(int n,int x){ LL ans=1,base=n; while(x){ if(x&1) ans*=base; base*=base; x/=2;//x>>=1; } return ans; }
就是底數不斷地從a*2^0->a*2^1->a*2^2
而是否讓ans*當前底數取決於當前指數的二進制最後一位,例如
11的二進制表示為1011,
第一次為1,√
第二次為1,√
第三次為0,×
第四次為1,√
表示就是if(x&1),表示最後一個是否為1,&是且操作
而base*base就是底數的不斷上升
最後return ans即可
【算法學習】快速冪
相關推薦
【算法學習】快速冪
quick a* 而是 操作 二分 long spa 表示 strong 快速冪可真是一個好東西 我覺得和高精度,或者快速冪模搭配 首先 快速冪是利用二進制表示指數,利用二分的思想來進行冪的運算 a^11=a^(1*2^0+1*2^1+0*2^2+1*2^3) typ
【算法學習】03---算法分析學習
循環 log 對數 子集 empty 分析 bsp 結果 -a 算法分析 算法分析 科學方法 細致的觀察真實世界的特點 根據觀察結果提出假設模型 根據模型預測未來的事件 繼續觀察並核實預測的準確性 反復直到確認預測和觀察一致 一般程序
【算法學習】老算法,新姿勢,STL——Heap
內存 str 關系 priority bug 普通 數組 關於 cto “堆”是一個大家很熟悉的數據結構,它可以在\(O(log\;n)\)的時間內維護集合的極值。 這都是老套路了,具體的內部實現我也就不談了。 我一般來說,都是用queue庫中的priority_queue
【算法學習】雙調歐幾裏得旅行商問題(動態規劃)(轉)
png .com 16px 我們 pan 子結構 最小 而且 復雜度 雙調歐幾裏得旅行商問題是一個經典動態規劃問題。《算法導論(第二版)》思考題15-1和北京大學OJ2677都出現了這個題目。 旅行商問題描述:平面上n個點,確定一條連接各點的最短閉合旅程。這個解的一般形式
【算法學習】後綴數組
適合 class 初學 從大到小 更新 continue log printf post 一個字符串的題,有姿勢水平的OIers的腦中應該要浮現出許多算法…… 但是我沒有姿勢,也沒有水平,除了KMP和trie樹,什麽也想不起來。 直到我學了它——後綴數組! 多虧這玩意兒,我
【算法學習】Fhq-Treap(無旋Treap)
遍歷 功能 很多 www 代碼 二叉查找樹 說明 命名 例題 Treap——大名鼎鼎的隨機二叉查找樹,以優異的性能和簡單的實現在OIer們中廣泛流傳。 這篇blog介紹一種不需要旋轉操作來維護的Treap,即無旋Treap,也稱Fhq-Treap。 它的巧妙之處在於只需要分
【算法導論】第七章、快速排序
很好 補充 第七章 而是 合並 art 元素 一個 排序 快排的優勢: 1、期望為O(n lgn) 2、常數因子比較小 3、就地排序 4、在虛存環境很好工作 與合並排序一樣是分治思想,但是不是從中間截斷,而是通過partition過程實現的 每次選擇最後一個元素為q,然
【算法系列】——Java實現冒泡&&快速
/** * @Title: quickSort.java * @Package cn.xiaojia.test * @Description: * @author 賈文靜 * @date 2017年8月8日 下午5:24:54 * @version V1.0 * Up
【算法模板】二叉樹
treenode tor bsp res stack ack 算法 == oid 模板: 1.先序遍歷三種方法 1)叠代: class Solution { public: /** * @param root: The root of binary tr
快速冪算法(矩陣快速冪還不是很會。。日後會更新)
代碼 -s get 運算 logs == data 。。 outb PS:轉載,自己寫的不如人家,怕誤導。轉載地址:http://www.cnblogs.com/CXCXCXC/p/4641812.html 首先,快速冪的目的就是做到快速求冪,假設我們要求a^b,按照樸素算
【算法拾遺】最大數和最小數
eas null 第k大 方法 track 兩個 str 最大值和次大值 數位 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/28735533 求一個數組中的最大值和最小值。我們一般的做法是掃描一遍數組求的
最長公共子序列--【算法導論】
pan end art blog src http size ret bdc 最長公共子序列:一個序列 S 。假設各自是兩個或多個已知序列的子序列,且是全部符合此條件序列中最長的,則 S 稱為已知序列的最長公共子序列。 其核心非常easy: 這樣,構造子結構就比較簡
【算法日記】Dijkstra最短路徑算法
其余 散點 jks 節點 while logs 最終 不能 基礎 上一篇再說廣度優先搜索的適合提到了圖。 狄克斯拉特算法是在圖的基礎上增加了 加權圖的概念。就是節點和節點之間是有不同距離的 1.算法實例 用Dijkstra算法找出以A為起點的單源最短路徑步驟如下 算法實
【算法導論】第六章、堆排序
兩個 高度 位置 思想 n) 隊列 sigma 復雜 max 基本過程: 1、保持最大堆的性質:假設兩個子堆都滿足,只需要根節點依次換下去,復雜度O(lg n) 2、初始化堆:後半段都是葉子,在前半段從後往前,依次執行上述最大堆性質的操作,名義復雜度是O(n lg n),
算法筆記--矩陣快速冪
sub display closed def i++ struct 構造 博客 using 寫的不錯的博客:http://www.cnblogs.com/yan-boy/archive/2012/11/29/2795294.html 優點:根據數列遞推式快速計算數列an的值
【算法專題】卡特蘭數(計數數列)
n-1 映射 點分治 blog -s 方法 .org div n-k Catalan數列:1 1 1 2 5 14 42 132 429 1430 4862 16796 【計數映射思想】 參考:卡特蘭數 — 計數的映射方法的偉大勝利 計數映射:將難以統計的數映射為另一種形式
【算法專題】多項式相關
學習筆記 itl 專題 int title 分享 www 理解 ade 【快速傅裏葉變換】 參考:從多項式乘法到快速傅裏葉變換 by miskcoo FFT 學習筆記 by Menci 特點:FFT用於O(n log n)解決多項式乘法。 (一)多項式的表示法: 系數表示法
【算法總結】博弈論相關
jsoi2009 algo n-k 流操作 sg函數 span HA font color 〖相關資料〗 《博弈論 SG函數》 〖相關題目〗 1.【bzoj1188】[HNOI2007]分裂遊戲 題意:共有n個瓶子,標號為0,1,2.....n-1,第i個瓶子中裝有
【算法總結】概率與期望相關
else tle 選擇 def mem html ros 也不能 algorithm 〖相關資料〗 《淺析競賽中一類數學期望問題的解決方法》 〖相關題目〗 1.【bzoj1415】[NOI2005] 聰聰和可可 題意:在一個魔法森林裏,住著一只聰明的小貓聰聰和一只可
【算法總結】基本算法
排序 src swap etc bre clu AD opened main 【堆排序】 〖模板代碼〗 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstrin