原创 本人博客已移步博客園
因爲一些特殊原因,把在csdn博客轉移到了博客園。這裏的博客暫時作廢。 My blog
原创 【模板】KMP
int n, m; char a[MAX_N | 1]; char b[MAX_M | 1]; int p[MAX_M | 1]; inline void Init() { p[0] = -1; for(registe
原创 【模板】求逆序對
歸併排序求逆序對 int n; int a[MAX_N]; long long ans; void Merge_Sort(int lt, int rt) { if(lt == rt) return; int mid = lt +
原创 【模板】歸併排序
int n; int a[MAX_N]; void Merge_Sort(int lt, int rt) { if(lt == rt) return; int mid = lt + rt >> 1; Merge_Sort(lt,
原创 【模板】快速輸出
void Write(int x) { if(x < 0) { putchar('-'); x = -x; } if(x >= 10) Write(x / 10); putchar(x % 10 + '0'); }
原创 【OI】蒟蒻奮鬥史
2017.12.7 機緣巧合下開始oi生涯。 註冊洛谷賬號。 寫出人生第一個cpp程序。 2018.1.5 在洛谷首次AC紅題。 2018.2.23 在洛谷成爲了小小牛。 在洛谷升爲藍名。 2018.4.29 在洛谷首次AC
原创 【圖論】淺析歐拉路
歐拉路介紹 首先大家可以嘗試去看一下專業的解釋。 維基百科(英文) 當然看不懂也沒什麼所謂,本文本身就是想要去簡單地解析歐拉路。 歐拉回路簡單的來說,就是在一張圖G中,如果能夠能夠找到一條路徑,滿足在遍歷路徑的過程中,G中的每條
原创 【題解】Luogu P2690 接蘋果
題目描述 這道題以時間爲階段,是一道很明顯的線性dp。 這道題有一個要點: 因爲只有兩棵樹且初始爲第一棵樹下,所以移動奇數次到達第二顆樹,移動偶數次則到達第一棵樹。 理解這個時候就可以直接推出狀態轉移方程了。 具體可以看下面的代碼來理解。
原创 【模板】Kruskal
int n, m; struct Edge { int u, v, w; }a[MAX_M]; // 令a關於w升序排列 int r[MAX_N]; // 並查集 int Find(int x) { if(r[x] ^ x)
原创 【模板】堆
小根堆 int n; int h[MAX_N]; inline void Insert(int x) { h[++n] = x; int now = n; while(now ^ 1) {
原创 【OI】【總結】初戰NOIP——NOIP2018遊記
前言 從最初接觸oi到複賽結束,也已經將近有一年了。從對於程序一竅不懂到現在開始深入學習算法,只是短短的不到一年的時間罷了。這次noip,不僅僅是我oi生涯的第一次noip,更是相當於是對我這一年的努力的一個檢驗。希望這次能取得一個好的成
原创 【模板】樹的存儲
父親表示法 顧名思義,就是隻記錄每個結點的父結點。 int n; int p[MAX_N]; // 指向每個結點的父結點 孩子表示法 如上,就是隻記錄每個結點的子結點。 int n; int cnt[MAX_N]; //
原创 【模板】Trie樹(字典樹,單詞查找樹)
int n; // 0爲根節點 char a[MAX_N]; // a[0] = 0; int p[MAX_N][26]; inline void Update(string s) { int now = 0, len = s.si
原创 博客聲明
由於擔心CSDN炸掉,本博客會同步內容到個人的備用博客。(鏈接在此)
原创 【模板】樹轉二叉樹
轉換方法其實就讓每一個結點的第一個子結點做左結點(如果沒有則左結點爲空),右邊的兄弟結點做自己的右結點(如果沒有則右結點爲空)。 int a[MAX_N][MAX_N], cnt[MAX_N]; int lt[MAX_N], rt[MA