錯誤集

數據結構

線段樹

注意更新信息時,不要直接覆蓋,可能覆蓋掉更優的信息。[WC2010] 重建計劃CF1320C World of Darkraft: Battle for Azathoth(梅開二度)數組

正確:數據結構

if(l==r)
{
    mx[cur]=max(mx[cur],v);
    return;
}

錯誤:優化

if(l==r)
{
    mx[cur]=v;
    return;
}

點分治

注意分治對象。快遞員spa

正確:code

root=0,tot=siz[p],dfs_root(p,x),solve(root);

錯誤:對象

root=0,tot=siz[p],dfs_root(p,x),solve(p);

數學

多項式

\(NTT\)\(lim\) 不夠大,形成循環卷積。[2017 山東一輪集訓 Day1] Sum遊戲

字符串

後綴自動機

節點數不超過 \(2n−1\),邊數不超過 \(3n−4\),數組大小要開成兩倍。CF1063F String Journey字符串

其餘

宏定義要注意括號的限制。[NOI2020] 美食家get

正確:數學

#define id(a,b) (a+(b)*n)

錯誤:

#define id(a,b) (a+b*n)

取模要完全,不要有漏的。[NOI Online #2 提升組] 遊戲

二分的對象爲給定元素的權值時,能夠二分元素的排名來優化時間,但要注意權值相等的狀況。CF603E Pastoral Oddities

正確:

for(int i=l;i<=mid;++i)
    if(ed[i].v<e[L].v||(ed[i].v==e[L].v&&ed[i].id<e[L].id))
        merge(ed[i].x,ed[i].y);

錯誤:

for(int i=l;i<=mid;++i)
    if(ed[i].v<e[L].v)
        merge(ed[i].x,ed[i].y);

\(pair\) 重載 \(<\) 後不能應用於 \(\max\)\(\min\)水の數列

bool operator < (const pair<int,int> &a,const pair<int,int> &b)
{
    return a.first*a.second<b.first*b.second;
}
void work()
{
    pair<int,int> a=make_pair(100,1),b=make_pair(20,20);
    puts(max(a,b)==b?"1":"0");
}

會輸出 \(0\)

兩個 \(10^{18}\) 的數相乘前要各自先取模。CF1261F Xor-Set

相關文章
相關標籤/搜索