原创 二叉堆小結

二叉堆基本操作:(可用優先隊列模板) 1.上升操作(可以用於插入,並不等於插入操作) 2.下降操作(可以用於刪除,並不等於刪除操作) 3.(知道了 1和2操作)要知道怎麼刪除堆內點! 4.堆排序 二叉堆 (小堆與大堆的合併運用)典例 p

原创 leetcode 兩正序數組的中位數

class Solution: def findMedianSortedArrays(self, nums1, nums2) : le1 = len(nums1) le2 = len(nums2)

原创 樹狀數組小結

樹狀數組功能:(適用於:要求不斷求區間和 || 不斷更新區間) 1.快速 求區間和 2.快速 更新區間 具體詳細資料 見大白書 和 輔導資料. 樹狀數組 ---運用了分塊的思想。 用lowbit函數來得到 地址下標. 基本操作: 1.lo

原创 大數取餘

(a * b) % c = ((a % c) * (b % c)) % c (a + b) % c = ((a % c) + (b % c)) % c 10000位大的數字可以分開算: 比如: m=123 123 = (1*10 + 2

原创 歐拉函數

poj2478--裸題 題解:就是求n以內 所有互素的數 的組合數! 即n以內所有整數的歐拉函數之和! 歐拉函數知識點 可以參考白書。 // 2478 Accepted 4084K 235MS C++ 620B // 2478 Acc

原创 Splay小結

Splay基本操作: 1.rotate() 旋轉操作---包含三種情況 2.splay() 伸展-----一般是旋到根或根的父親的下面 3.rotate_to() 先找到要伸展的結點,再splay; 4.push_up() 向上維護根的信

原创 約瑟夫環

System Overload Time Limit: 10 Seconds      Memory Limit: 32768 KB Recently you must have experienced that when too

原创 gcd簡單應用

相等的最小公倍數 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 145(55 users) Total Accepted: 63(44 users) Rating: 

原创 線段樹小結

如果是1~n 個數 那麼我們知道線段樹 最後一層 一定是n個結點!  那麼 可得線段樹 最多的結點數爲 2^(log2(n)+1)-1 或者 2*n-1個   單點更新 HDU1754 //9596209 2013-11-16 12:1

原创 win8下更改codeblocks顏色

因爲白色太刺眼!所以可以改成一下風格! 首先找到 C:\Users\xdq\AppData\Roaming\codeblocks 的default.conf 把其中的 <color sets>到 </color sets>  一段 替換爲

原创 二次篩素數!

坑爹的解說,一點都不詳細。。害我想好久。。 poj--2689 題意 找一個範圍內的  相鄰的 差 最小和最大 的 兩個素數! 因爲這個範圍的上限值可能到了 int 的最大值。 所以直接用一次篩出全部素數   肯定超時,數組也開不到20多

原创 後綴數組小結

---------------具體見參考資料.-------------《後綴數組-處理字符串的有力工具 》。 後綴數組三個主要數組: sa[]--下標爲此後綴排名,值爲排該名的是誰! rank[]--下標和值 與 sa數組剛好相反! h

原创 Treap小結

Treap(Tree+Heap)---是一種通過 rand() 來隨機生成數字作爲修正值來調整的平衡樹。 基本操作: 1.旋轉。 2.插入(合併重複的),刪除(懶惰刪除)。 3.查最值,求第k小,求排名。 4.中序遍歷就是從小到大的。 5

原创 康託展開

知識點: 康託展開 和 逆康託展開 /**注:轉載zhongkeli**/ 康託展開   康託展開的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai爲當前未出

原创 線性同餘方程

/*********PS:該知識點必須先學 模線性方程!!**********/ 問題描述:給出bi,ni的值,且n1, n2, n3,…, ni兩兩之間不一定互質,求Res的值?  解:採用的是合併方程的做法。  這裏將以合併第一第二