WA 后七个点并荣获 30pts 的另一种可能
查看原帖
WA 后七个点并荣获 30pts 的另一种可能
576702
_Remake_楼主2022/11/10 21:50
void Update(int x,int y)
{
    Val[x].val[1][0]+=y-A[x];
    A[x]=y;
    mat bef,aft;
    while(x)
    {
        bef=query(1,1,n,dfn[top[x]],dfn[ed[top[x]]]);
        update(1,1,n,dfn[x]);
        aft=query(1,1,n,dfn[top[x]],dfn[ed[top[x]]]);
        x=F[top[x]];
        if(!x)
        {
            break;
        }
        Val[x].val[0][0]+=std::max(std::max(aft.val[0][0],aft.val[0][1]),std::max(aft.val[1][0],aft.val[1][1]))-std::max(std::max(bef.val[0][0],bef.val[0][1]),std::max(bef.val[1][0],bef.val[1][1]));
        Val[x].val[0][1]=Val[x].val[0][0];
        Val[x].val[1][0]+=aft.val[0][0]-bef.val[0][0];//这里写成Val[x].val[1][0]+=std::max(aft.val[0][0],aft.val[1][0])-std::max(bef.val[0][0],bef.val[1][0]);就寄了
    }   
}
2022/11/10 21:50
加载中...