唯一的要求: 自己能看懂
下面會講
變數名與關鍵字
型別
#define b cout << "breakpoint" << endl;
#define o(x) cout << #x << " " << x << endl;
#define o_(x) cout << #x << " " << x << " ";
#define msz(x) cout << "sizeof " << #x << " " << sizeof(x)/1024/1024 << " mb" << endl;
_tp<_tyn t>void print( t a , int s , int t , char sp = ' ' , char ed = '\n' )
_tp<_tyn t>void print( t a , int s = 0 , int t = -1 , char sp = ' ' , char ed = '\n' )
實際應用:
#include using namespace std;
int popcount( int x )
// where is the return?
}int main()
初級用法:#define b cout << "breakpoint" << endl;
高階:
長得像函式一樣...
#define o(x) cout << #x << " " << x << endl;
#x
: 輸出x
的變數名
小實驗:
#define name_of_var(x) cout << #x << endl;
int mrclr_akioi = 2333;
name_of_var(mrclr_akioi);
#ifdef intoj_saigao
cout << "intoj_saigao" << endl;
#endif
不會 OI省選知識
1.陣列 y 2.鍊錶,雙向鍊錶 y 3.佇列,單調佇列,雙端佇列 4.棧,單調棧1.堆 2.並查集與帶權並查集 3.hash 表 自然溢位 雙hash1.樹狀陣列 2.線段樹,線段樹合併 3.平衡樹 treap 隨機平衡二叉樹 y splay 伸展樹 scapegoat tree 替罪羊樹 4.塊...
省選演算法匯集
陣列 鍊錶,雙向鍊錶 佇列,單調佇列,雙端佇列 棧,單調棧 堆並查集與帶權並查集 hash 表 自然溢位 雙hash 樹狀陣列 線段樹,線段樹合併 平衡樹treap 隨機平衡二叉樹 splay 伸展樹 scapegoat tree 替罪羊樹 塊狀陣列,塊狀鍊錶 5.樹套樹 線段樹套線段樹 線段樹套平...
省選模擬 19 09 11
ps.博主趁資訊課摸魚考的暴零模擬 看門人憑感覺就知道是長鏈剖分,將路徑查分一下,dis u di sv 2 dis lc adis u dis v 2 dis disu disv 2 disl ca 維護fu,if fu,i 表示u的子樹,深度為 i 的點的 dis disdi s最大值 考慮如何...