原创 樹狀數組 BIT (Binary Indexed Tree)

還沒想好怎麼解釋,先貼程序片 int SUM(int s, int t) { return sum(t) - sum(s-1); } int sum(int i) { int ans = 0; while

原创 最近公共祖先 LCA (Lowest Common Ancestor)

【題目描述】 在有根樹中,兩個節點 u 和 v 的公共祖先中距離最近的被稱爲最近公共祖先LCA。 給出一棵有根樹,有 M 對查詢,求每一對 u 和 v 的LCA。 【輸入格式】 第一行,N,表示這棵樹有

原创 NOIP2015提高組day1 —— 信息傳遞(message)

#include <fstream> #include <algorithm> using namespace std; ifstream fin("message.in"); ofstream fout("message.out

原创 NOIP2015普及組 —— 推銷員(salesman)

#include <fstream> #include <algorithm> using namespace std; ifstream fin("salesman.in"); ofstream fout("salesman.o

原创 Bellman-Ford 算法 & SPFA(單源最短路問題)

一、Bellman-Ford算法 Bellman-Ford 算法是單源最短路問題的一種算法,相比 Dijkstra 算法,它可以處理含有負權迴路(也叫負權環,negative cycles)的圖。 Dijkstra 算法以貪心法

原创 Floyd-Warshall算法 (任意兩點間的最短路問題)

這個算法本質上就是動態規劃。 首先我們給有V個頂點的圖每個頂點標號0~V-1,則設 d[k][i,j] 爲點 i 到點 j 的路徑中標號最大(不包括 i 和 j )的點爲 k,則可得狀態轉移方程 d[k][i,j]=min(d

原创 範圍最小值查詢 RMQ (Range Minimum Query)

一、最簡單的RMQ:靜態 【題目描述】 已知有數列 a0,a1,...,aN−1 有 M 次查詢 Query(x,y) 對於每個 Query(x,y) 求 ax,ax+1,...,ay 範圍內的最小值

原创 Kruskal 算法(最小生成樹)

最小生成樹 Minimal Spanning Tree(MST)問題 已知一個連通圖G={V,E}(G: graph, V: vector, E: edge),求子圖G’={V,E’},使得子圖裏的邊權總和最小。 也就是

原创 歡迎使用CSDN-markdown編輯器

歡迎使用Markdown編輯器寫博客 本Markdown編輯器使用StackEdit修改而來,用它寫博客,將會帶來全新的體驗哦: Markdown和擴展Markdown簡潔的語法 代碼塊高亮 圖片鏈接和圖片上傳 LaTex數學公

原创 NOIP2015提高組day2 —— 跳石頭(stone)

#include <fstream> using namespace std; ifstream fin("stone.in"); ofstream fout("stone.out"); int L, N, M, a[100000

原创 NOIP2012普及組 T3 擺花(加強版)

【題目大意】 用 n 種花擺共 m 盆花,每盆僅能擺一種花,不分每種花、每盆花的順序,第 i 種花可以不擺,最多擺 ai 盆,求方案數。 【輸入格式】 共 2 行。第一行包含兩個正整數 n 和 m,中間用一個空格隔開

原创 線段樹的一種奇怪的套路

「POI2015」Kinoman 共有 mm 部電影,編號爲 1∼m1∼m ,第i部電影的好看值爲w[i]。 在接下來 nn 天中,每天會放映一部電影,第 ii 天放映的是第 f[i]f[i] 部。 你可以選

原创 索引(填坑進度:1%)

先安利《Ever17~The Out of Infinity~》 一、USACO Season 1st 2nd 3rd US Open 2016-2017 December 2016 January 2017 Februa

原创 Catalan數

一、遞推式 已知n(n∈N)個元素,約定元素k表示第k個入棧的元素,換句話說,將元素按入棧順序的先後編號爲1~n,稱爲元素1~n。求可能的出棧順序的總數Cn。 顯然C1=1, C2=2。當n=3時,C3=5,可能的出棧順序有(用1表示入

原创 位運算

突然想寫,於是就寫了 Pascal: 功能 示例 位運算 去掉最後一位 (101101->10110) x shr 1 在最後加一個0 (101101->1011010) x shl 1 在最後加一個1 (1011