原创 快速乘

快速冪不多說,當兩個int64相乘時可能會爆掉,所以運用快速冪的的思想快速求出 function cal(x,y:int64):int64; var ans:int64; temp:int64; begin

原创 ST解決RMQ問題

它的基本方法就是DP。 F[i][j]表示從i往後數2^j個數字中的最大/最小值,即區間[i,i+2^j-1]的最值。 採取二分的思想f[i][j]=max{ f[i][j-1] , f[i+2^(j-1)][j-1] } 然後用DP進行

原创 Tarjan LCA

在遍歷到u時,先tarjan遍歷完u的子樹,則u和u的子樹中的節點的最近公共祖先就是u,並且u和【u的兄弟節點及其子樹】的最近公共祖先就是u的父親。注意到由於我們是按照DFS順序遍歷的,我們可用一個color數組標記,正在訪問的染色爲1,

原创 線段樹求區間最大值

program pro; var aa:array[0..100000]of longint; tree:array[0..200000]of record a,b,co,l,r,max:longint;

原创 Pascal 倍增求LCA

<pre name="code" class="delphi">{ 效率 預處理 O(nlog(n)) 查詢 O(log(n)) 優點:能夠記錄路徑、 缺點:沒有LCA轉RMQ的ST算

原创 樹狀數組

樹狀數組就線段樹來說 無法進行區間修改和求最值 program pro; type mine=array[0..100000]of longint; var n,m:longint; a,b:mine;

原创 排列組合問題求解

例題1:若a1個b1,a2個b2,a3個b3,……,an個bn排成一列,共有x種排列方法,其中:          例題2:有r個相同的小球,放入n個不同的盒子中(不允許有空盒),共有y种放法,其中:          例題3:有r個相同

原创 歐拉函數O(sqrt(n))

利用的是公式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn爲x的所有質因數,x是不爲0的整數。φ(1)=1(唯一和1互質的數(小於等於1)就是1本身)。 (

原创 歐幾里德算法及其拓展算法

轉 http://www.cnblogs.com/frog112111/archive/2012/08/19/2646012.html 歐幾里德算法又稱輾轉相除法,用於計算兩個整數a,b的最大公約數。 基本算法:設a=qb+r,其

原创 Review-動態樹(Bzoj2049)

2049: [Sdoi2008]Cave 洞穴勘測 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 3398  Solved: 1550 [Submit][Status] Descrip

原创 Review-並查集(Bzoj3673)

3673: 可持久化並查集 by zky Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 478  Solved: 196 [Submit][Status] Description n個

原创 KWY的splay總結

轉自小天才 KWY 3223 裸的區間反轉,注意在最左邊和最右邊加上倆點 3224 各種平衡樹都可以寫,全是最裸的操作練習 1861 因爲這道題結點的總數始終不會改變,改變的只是順序,所以可以在插入結點時記錄下當前編號的書在樹中的結點下

原创 NOIp模擬賽-改造二叉樹

題意: 給定一個二叉樹和節點值,修改一個節點的費用爲1,求最小修改成二叉搜索樹的費用。 思路:   本題應該考慮二叉搜索樹的性質,一棵二叉搜索樹的中序遍歷是一個嚴格上升的子序列,那麼這道題就轉換成求一個求這個樹中序遍歷後的最長上升子序列了

原创 Bzoj 1208: [HNOI2004]寵物收養所

1208: [HNOI2004]寵物收養所 Time Limit: 10 Sec  Memory Limit: 162 MB Description 最近,阿Q開了一間寵物收養所。收養所提供兩種服務:收養被主人遺棄的寵物和讓新的主人領養這

原创 Bzoj-1001

 1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 10707  Solved: 2464 Description 現在小朋友們最喜歡