1.矩陣乘法乘的時候一定注意是否要開\(longlong\)。
2.確保暴力正確再對拍.
3.線段樹\(tag\)標記一定要看清楚,有多個時不要搞混。
4.倍增求\(lca\),次方迴圈放外面。
5.打樹剖時,線段樹用的是\(dfn[x]\),樹剖用的是x。
6.分塊,正經的分塊
n = read(); t = sqrt(n);
for(int i = 1;i <= n; i++) c[i] = a[i] = read(), pos[i] = (i - 1) / t + 1, b[pos[i]].l = 23333333;
for(int i = 1;i <= n; i++) b[pos[i]].l = min(b[pos[i]].l, i), b[pos[i]].r = max(b[pos[i]].r, i);
不可以這麼分
n = read(); t = sqrt(n);
for(int i = 1;i <= n; i++) c[i] = a[i] = read();
for(int i = 1;i <= t; i++) b[i].l = (i - 1) * t + 1, b[i].r = i * t;
if(b[t].r < n) b[++t].l = b[t - 1].r + 1, b[t].r = n;
for(int i = 1;i <= t; i++) for(int j = b[i].l;j <= b[i].r; j++) pos[j] = i;
7.優先佇列內結構體的過載
大根堆:按num從大到小排序
struct people
};priority_queue q;
小根堆:按num從小到大排序
struct people
};priority_queue , greaterq;
8.void型別的函式千萬不要寫成int型別。
9.掃瞄線,如果有幾條縱座標相等的線,先掃下界(1),再掃上界(-1)。
10.dij不適用於有負邊權的圖!!!!
11.**的注釋一定不要弄錯,**該注釋掉,不該注釋掉都要搞清楚。
12.有的時候快速冪傳進去的引數是long long型別的,注意先mod一下再乘。
13.做矩陣乘法題賦初值,\(n = 1\)時可能不太一樣.\(a[i][j] = 1\)變成\(a[i][j] ++\);
14.spfa判斷負環是\(cnt[x] > n\), 不是\(cnt[x] >= n\).
15.輸入字串或字元用cin肯定不會錯.
16.多卡常, 例如快讀, 能開int不開longlong等.(該開longlong一定要開)
17.線段樹開4倍空間,雙向邊開雙倍空間,這裡要多檢查.
18.少用map, 能不用就不用.
19.輸出double用"%lf", long double 用"%lf".
20.樹上路徑問題要考慮點分治, 但是寫點分治之前要考慮是否可以快速的統計答案, 也就是是否可以做到降低時間複雜度.
21.思路清晰了再寫**, 一定要想全, 否則打了一半發現不對很浪費時間.
22.同樣的操作重複次數很多的話, 可以考慮矩陣或倍增.
22.正難則反, 單步容斥這些多考慮考慮.
23.多寫函式, 結構體封裝也可以寫一寫, 盡量把**分成一塊一塊的.
24.有些東西不好維護, 看看能不能化成別的形式就好維護了, 比如\((a + b) ^ 2 = a ^ 2 + 2ab + b ^ 2\).
linux shell指令碼犯錯
指令碼裡犯了錯 oracle it shell value 1 oracle it shell value 1 bash value command not found oracle it shell value 3 bash value command not found oracle it sh...
犯錯的成本
周五,寶寶出生百天。週六,被 疫苗之王 刷屏了。急忙翻了一下寶寶要接種的疫苗 B肝,脊灰,百白破,腦流,麻風,乙腦,肺炎球,A肝.自出生到36個月,前前後後至少二十多針。寶媽加的 產後群 裡議論紛紛 畫外音 不知道是否該慶幸,出事的疫苗沒有北京這一批 這種慶幸。真是一種悲哀。毒奶粉,紅黃藍事件,無效...
犯錯的成本
周五,寶寶出生百天。週六,被 疫苗之王 刷屏了。急忙翻了一下寶寶要接種的疫苗 B肝,脊灰,百白破,腦流,麻風,乙腦,肺炎球,A肝.自出生到36個月,前前後後至少二十多針。寶媽加的 產後群 裡議論紛紛 畫外音 不知道是否該慶幸,出事的疫苗沒有北京這一批 這種慶幸。真是一種悲哀。毒奶粉,紅黃藍事件,無效...