52分或者直接交板子的xdm看过来(警示后人

P6136 【模板】普通平衡树(数据加强版)

liyiHuan @ 2022-10-12 10:07:33

1、不管什么操作,输入都要异或上上一次结果

2、如果宁是直接搬运Treap板子,询问排名的时候需要 先插入后删除,因为可以不存在,并且插入删除你只能放在opt==3里面

所以你应该是

signed main()
{
    cin.tie(0) -> sync_with_stdio(0);
    build();

    int n,m,lst=0,ans=0;
    cin>>n>>m;

    int opt, x;
    for (int i=0;i<n;i++)
    {
        cin >> x; 
        insert(root,x);
    }

    x = 0;
    while (m -- )
    {
        cin >> opt >> x;
        x^=lst;
        if (opt==1) insert(root,x);
        else if (opt==2) remove(root,x);
        else 
        {
            if (opt==3) 
            {
                insert(root, x);
                lst=get_rank_by_key(root,x)-1;
                remove(root, x);
            }
            else if (opt==4) lst=get_key_by_rank(root,x+1);
            else if (opt==5) lst=get_prev(root,x);
            else if (opt==6) lst=get_next(root,x);
            ans ^= lst;
        }

    }
    cout<<ans;
    return 0;
}

by H2O_TX @ 2022-11-03 19:06:55

谢谢大佬%%%

我就是这里错了


by _lyx111 @ 2022-12-28 16:37:40

谢谢大佬 %%%

我就是这里错了


|