原创 luogu P1777

要實現的操作過於複雜。 考慮先取出, 後插入, 對答案沒有影響, 最後的答案就是取出後剩餘的序列形成的段的數量加上取出來的集合中擁有的剩餘的集合中沒有的元素的數量, 即設剩餘集合爲 S, 取出集合爲 H, 那麼剛纔說的加上的那個數就是 |S

原创 [省選聯考 2020 A/B 卷] 信號傳遞

推薦閱讀(參考資料) 對於一個傳遞 x → y, x、y 表示座標, 代價是:\(\begin{cases}y-x, \quad x<y\\kx+ky,\quad x>y\end{cases}\). 即所有的的代價都可以換成一個點的座標的

原创 Stoer-Wagner 全局最小割代碼

還是很好背的。 #include<bits/stdc++.h> using namespace std; const int N = 623, inf = 0x3f3f3f3f; int n,m,dis[N][N]; int s, t;

原创 最小斯坦納樹代碼

#include<bits/stdc++.h> using namespace std; const int N = 103, M = 503, SZ = (1<<10)+3; int n,m,k,p[13]; int ecnt, h

原创 連通分量相關代碼

// 割邊 void tar(int x,int in_e) { dfn[x] = low[x] = ++cnt; for(int i=hd[0][x],y=vr[i]; i; i=nt[i],y=vr[i]) if(!df

原创 串串亂記(長期

這裏貼板子, 近一週每天都要打截止那天早上已經會的。 知識筆記貼在: note 1 KMP模板 #include<bits/stdc++.h> using namespace std; const int N = 1e6 + 233;

原创 數數結論亂記(長期

\[x^{\overline{n}} = \sum_{k}\begin{bmatrix}n\\ k\end{bmatrix}x^k \\ x^n = \sum_{k}\begin{Bmatrix}n\\k\end{Bmatrix}(-1)^

原创 淺究下 zkw 線段樹

遞歸式線段樹和 zkw 線段樹一樣, 都使用滿二叉樹, 常規的理解下遞歸式線段樹使用的只是滿二叉樹常用的的節點編號規則(堆式編號,下面的所有滿二叉樹同樣使用堆式編號),其本質是一個分治算法,並不使用完整的滿二叉樹;zkw 線段樹則使用了更多

原创 WBLT初步

leafy tree 結構, 大概是 k 叉樹的非葉節點都有 k 個子節點, 比如線段樹就是 leafy 的。 可以用 leafy tree 結構實現加權平衡樹, 大概是叫做 WBLT(Weight Balanced Leafy Tree)

原创 k 叉 Huffman 樹問題

k叉Huffman樹問題? 描述:給 n 個節點和函數 \(w(i)\), 要求給這 n 個節點賦一個樹結構, 可以新建節點, 使得這原來的 n 個節點都是新樹的葉節點, 每個葉節點 \(i\) 的貢獻是這個節點的深度乘以 \(w(i)\)

原创 拉鍊哈希表

抄的 OI-wiki。 hash_table? 首先要有哈希函數,將一個特定的複雜結構變成一個整數, 當然, 哈希函數不應有隨機性。 然後對於哈希表的值域進行拉鍊, 避免哈希衝突。 如果哈希表的值域大小爲 \(M\), 表內插入了 \(N\

原创 基本容斥小記

參考了 這篇 目錄基本模型與技巧基本例題 基本模型與技巧 前置知識只有兩個, 一個是基本的計數技巧, 在這裏略去不提, 另一個是:\(\sum\limits_{i=0}^n (-1)^i \dbinom{n}{i}=[n=0]\), 這個

原创 NOIP2020覆盤

目錄開考之前T1T2T3T4總結 開考之前 打了一堆代碼:對拍、簡單數據結構的封裝、數論算法。 T1 沒多想就衝了, 沒有注意到分數合併時底數用兩個分母的 LCM 更好, 沒想到開 unsigned long long, 沒估計是否要寫

原创 賽前感想

比賽前總會頹, 大概這就是所謂毀滅的前奏吧。因稍微的末世感倍感愉悅 逃避與昂揚一併消失了!要是真的成爲無情的複習機器也好啊, 但我現在只是個頹廢的廢物啊啊啊。 將在多到收集不起的碎片中生出的心靈化作言語 現在的話,那會是: “太頹了,

原创 圖上負環判定小記

本文全文參考了 《算法競賽進階指南》by lydrainbowcat 如果一個環上所有邊的權值和爲負數,稱其爲負環。 常用的能夠判斷負環的算法一般就是 Bellman-Ford 系的最短路算法。 若圖中存在負環,那麼直觀表現爲:總是存在一條