进士后人:如果你TLE 44pts
查看原帖
进士后人:如果你TLE 44pts
1095979
HSC307楼主2024/11/21 06:29

请检查在进行操作一时是否于两个点在同一集合的情况下忘记储存新的版本,本人就是写成了

inline void uni(int a,int b,int c){
    a=find(a,c-1),b=find(b,c-1);
    if(a==b)return;//<---
    depa=query(root[c-1],a,1);
    depb=query(root[c-1],b,1);
    if(depa<depb)swap(a,b);
    root[c]=root[c-1];//<---
    upd(root[c],b,a);
    upd(root[c],a,a,max(depb+1,depa));
    return;
}

导致调了好久。

2024/11/21 06:29
加载中...