关于pbds
  • 板块灌水区
  • 楼主Noir_
  • 当前回复21
  • 已保存回复21
  • 发布时间2021/11/19 18:50
  • 上次更新2023/11/4 00:07:55
查看原帖
关于pbds
100743
Noir_楼主2021/11/19 18:50

pbds的平衡树为什么第一种写法不行,要用第二种?

main(void){
    n=read();
    while(n--){
        const register int op=read(),x=read();
        if(op==1) t.insert(x);
        else if(op==2) t.erase(t.lower_bound(x));
        else if(op==3) write(t.order_of_key(x)+1),putchar('\n');
        else if(op==4) write(*t.find_by_order(x-1)),putchar('\n');
        else if(op==5) write(*--t.lower_bound(x)),putchar('\n');
        else write(*t.upper_bound(x)),putchar('\n');
    }
    return 0;
}
main(void){
    n=read();
    for(register int i=1;i<=n;i++){
        const register long long op=read(),x=read();
        if(op==1) t.insert((x<<20)+i);
        else if(op==2) t.erase(t.lower_bound((x<<20)));
        else if(op==3) write(t.order_of_key((x<<20))+1),putchar('\n');
        else if(op==4) write((*t.find_by_order(x-1))>>20),putchar('\n');
        else if(op==5) write((*--t.lower_bound((x<<20)))>>20),putchar('\n');
        else write((*t.upper_bound((x<<20)+n))>>20),putchar('\n');
    }
    return 0;
}

(考前抱一抱佛脚,noip rp++!)

2021/11/19 18:50
加载中...