犯錯和注意

2022-05-07 17:45:08 字數 1788 閱讀 8742

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個月,前前後後至少二十多針。寶媽加的 產後群 裡議論紛紛 畫外音 不知道是否該慶幸,出事的疫苗沒有北京這一批 這種慶幸。真是一種悲哀。毒奶粉,紅黃藍事件,無效...