我死了~~

P2486 [SDOI2011] 染色

我来看了!emming……,不会,我走了
by 灵光一闪 @ 2019-05-12 16:51:50


不用看了,找到了。
by nofind @ 2019-05-12 17:04:25


为以后写的人提个醒: 刚才代码中: ``` if(dep[x]>dep[y]) swap(x,y),swap(ans1,ans2); ans+=query(1,dfn[x],dfn[y],dfn[x],dfn[y]); if(RC==ans1) ans--; if(LC==ans2) ans--; ``` 应改为: ``` if(dep[x]<dep[y]) swap(x,y),swap(ans1,ans2); ans+=query(1,dfn[y],dfn[x],dfn[y],dfn[x]); if(RC==ans1) ans--; if(LC==ans2) ans--; ```
by nofind @ 2019-05-12 17:05:45


理由是:当x,y跳到一条重链上时,RC要与深度大的那个点上一回的左端点比较,LC要与深度小的那个点比较
by nofind @ 2019-05-12 17:08:36


@[nofind](/space/show?uid=145441) 挖一下您的坟,顺便请教LC和RC分别是怎么用的,您是怎么更新的?卡在这上面了,谢
by xiaolou @ 2019-06-12 21:01:12


@[xiaolou](/space/show?uid=68675) LC和RC是您上回跳过的链的左右端点,是为了合并答案时去除重复的的。 我们统计答案时将每一条链上的颜色数都加了上去,这样在两条链的交接处如果颜色相同就会重复计算,于是记录上回的链的左右端点的颜色,与这回的链左右端点对比,如果相同就减一。 刚才在考试,没看到,抱歉了~
by nofind @ 2019-06-12 22:28:00


@[nofind](/space/show?uid=145441) 感谢,明白了
by xiaolou @ 2019-06-13 17:59:24


|