如果你80分T最后两个点
查看原帖
如果你80分T最后两个点
581564
Pozhu楼主2022/9/30 11:20

看一下你的 push_up 函数 :

void push_up(int x)
{
    t[x].sum = t[ls(x)].sum + t[rs(x)].sum;
    t[x].hismx = max(t[ls(x)].hismx,t[rs(x)].hismx);
    if(t[ls(x)].mx == t[rs(x)].mx)
    {
        t[x].mx = t[ls(x)].mx;
        t[x].cnt = t[ls(x)].cnt + t[rs(x)].cnt;
        t[x].dx = max(t[ls(x)].dx,t[rs(x)].dx);
    }
    else if(t[ls(x)].mx > t[rs(x)].mx)
    {
        t[x].mx = t[ls(x)].mx;
        t[x].cnt = t[ls(x)].cnt;
        t[x].dx = max(t[rs(x)].mx,t[ls(x)].dx);
    }
    else
    {
        t[x].mx = t[rs(x)].mx;
        t[x].cnt = t[rs(x)].cnt;
        t[x].dx = max(t[ls(x)].mx,t[rs(x)].dx);
    }
}

里边的第二个 else if 有没有写 else

因为这个锅de了一上午bug。。。

2022/9/30 11:20
加载中...