原创 【Matrix】矩陣乘法

矩陣乘法:  Mat Mult(Mat a, Mat b){ // Mat 爲自定義類型 Mat c; memset(c.m, 0, sizeof(c.m)); c.r= a.r; c.c=b.c; //

原创 OI算法彙總

1.數據結構 - 線段樹 - 樹狀數組 - 平衡樹 - Link-Cut-Tree - 可持久化數據結構 - 分塊 - KD樹 - 可合併堆(左偏樹) 2.數學 - 組合數學 - 質數 - 模 - 數論函數 - 矩陣 - 博弈論 3.圖論

原创 【Aho-Corasick Automaton】

ZOJ 3494 BCD Code #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int each[10][4] =

原创 雙連通分量_road

問一個無向圖上面,連最少的邊,使之成爲一個雙連通圖.求出連邊的具體方法。 一開始首先要找出圖裏的雙連通分量, 把他們縮成一個點後再處理. 【雙連通分量】 求雙連通分量的方法和Tarjan差不多, 改一下就好了. 定義: "割點" & "橋

原创 線段樹-代碼實現細節與技巧

寫在最前 寫代碼,就是不斷地去模仿他人代碼,總結出其中要點,再加上自己的體會。 線段樹我一開始也是三段式: if (r<=mid) query(x+x, l, r); else if (l>mid) query(x+x+1, l, r)

原创 NOIP應試技巧

NOIP應試技巧 如何看待別人的經驗? 我想大家都有臺上的學長滔滔不絕,但是自己在臺下漠不關心,或是老師考試前的叮囑說完一會兒功夫就忘記了的經歷吧。所以,有可能我接下來的所說的話,一到考場上就全部忘記了。那些別人所分享的經驗與體

原创 【莫隊】

小Z的襪子 Powerful array Count on a tree II

原创 Fermat素性測試, Miller-Rabin素性測試

首先, 強調一句: Matrix67原創 , 轉貼請註明出處  http://www.matrix67.com/blog/archives/234 昨天看了看spoj的第2題(坑啊~), 說的是找出 A,B之間的素數, 有T<=10組數據

原创 sequence_單調隊列, connon_DP

1 sequence  給出n個二元對(ai, bi),從中確定最長不下降子串,其中位置i的值可以爲ai到bi的任意一個。(通俗的講就是,每個位置都可定一個值,介於ai與bi之間,再找出這個串的最長不下降子串)。 n<=10^6 <G

原创 gold_ 揹包DP, memory_KMP

這幾天做了幾道題目, 就寫一寫,題目真得很~好。 gold: 給出S個揹包, 每個揹包容量爲Y, 和N件物品,可以去任意次, 每個物品有一個價值V和重量W,且知道合併兩個揹包的代價爲C, 問價值和最大是多少。 50%:  S*Y<=100

原创 【DP】ants

題目簡述:  平面上有N只螞蟻,每個螞蟻的位置我們用一個整數座標(x,y)表示。現在我們想知道這個平面上可能有幾羣螞蟻。我們稱一些螞蟻組成一個羣,當且僅當:這個羣裏任意兩隻螞蟻之間的距離,都嚴格小於這個羣裏任意一隻螞蟻到不屬於這個羣的任意

原创 【KM】

#include<cstdio> #include<cstring> using namespace std; const int N = 50, INF = 1e9; int nx, ny; bool adj[N][N]; int

原创 【STRINGS】合集

Ctrl+A = Tips [KMP] Crack 簡單匹配 Periodic Strings 簡單匹配+查找 String Factoring 與上題一樣,加上DP Milking Grid 思想與第二題是一樣的,但要分列分行處理 [

原创 stick_矩陣乘法

好吧, 重新寫一寫矩陣乘法。 考慮斐波拉契數列 Fi = Fi-1+ Fi-2  那麼考慮一個1*2的矩陣{ Fi,   Fi-1 } 乘以一個 2*2的矩陣, 成爲{ Fi+1 ,  Fi} 考慮矩陣乘法的定義, 這個一維數組的第一個數