原创 Splay樹的基本寫法

//node爲節點類型,其中ch[0]表示左結點指針,ch[1]表示右節點指針 //pre表示指向父親的指針 void Rotate(node *x,int c) //旋轉操作,c=0表示左旋,c=1表示右旋 { node *y

原创 Trie Uva11732

不懂爲什麼老是submission error,也不說明白具體哪錯了,至今未過。。 #include <iostream> #include <fstream> #include <algorithm> #include <cstdio

原创 BST 運用STL UVa11020

multise內部結構就是一個Binary Search Tree,要重載<操作符,這個第一次寫,用起來太生疏了。 #include <cstdio> #include <set> using namespace std; struc

原创 AC自動機 UVa11019

這題的AC自動機不用維護last數組,找到每個左上角的匹配行數,如果恰好等於x,那麼剛好就是一個完整的二維匹配。 但是,不明白爲什麼一直WA啊,看了別人的代碼感覺都差不多啊,我也考慮了模板串多行相同的情況啊,鬱悶了。 #include

原创 uva 11995 STL模擬

記住 在pop之前 要先判斷 是否 empty。runtime error 了 三次。 #include <iostream> #include <cstdio> #include <stack> #include <queue> u

原创 uva11991

Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contes

原创 AC自動機 LA4670

這題調了好久: 問題1:Trie圖的節點數給小了,應該是150*70,我給的是150*26,少腦子了; 問題2:就是數組開小了,老是提交超時,導致開始懷疑算法的複雜度有問題; 另外,LA上這題的數據非常弱,非常非常弱。 AC自動機的本質

原创 uva 11997

K Smallest Sums You're given k arrays, each array has k integers. There are kk ways to pick exactly one element in

原创 windows程序設計 學習記錄1

剛開始的入門程序,在窗口中輸出Hello windows 98!,窗口名是hellomsg。 #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE

原创 RMQ問題 UVa 11235

RMQ問題:range minimum query。還是利用二分的性質。初始化複雜度是nlogn,查詢是logn,本題要先編碼,然後再利用RMQ的方法來做。 #include <iostream> #include <fstream>

原创 Trie LA3942

Trie的精髓在於利用了公共前綴,生成一個關係樹,一條邊代表一個字符,節點的val值來記錄是否爲單詞結尾; 這次的數據結構Trie的所有操作直接寫在了結構體裏面,第一次這麼寫; 連續交了三遍Runtime Error,一個是Trie的節點

原创 HDOJ 4578 線段樹

關鍵問題是要同時維護每個節點的三個值,sum【1】一次方,sum【2】二次方,sum【3】三次方,還有個update()維護每次的sum值的改變。 然後有個lazy【】標記,既然有lazy標記,就要有pushdown的維護。三種操作,+c

原创 並查集 LA 3644

基本題。 #include <iostream> #include <fstream> #include <algorithm> #include <cstdio> using namespace std; #define N 100

原创 並查集LA3027

基本題,每次把一個根加到另一棵樹的結點上,距離有定義,每次詢問某結點到根的距離。 #include <iostream> #include <fstream> #include <algorithm> #include <cstdio>

原创 線段樹 LA3938

又卡住了,寫了前面一半,後面一半想不明白了。。 終於,其實在查詢的時候還是需要利用建樹時候的基本思想,不斷二分區間來計算sub,prefix,suffix。 具體寫起來,只有sub比較複雜一點,prefix和suffix還是比較簡單的。