再求助一次

P3165 [CQOI2014] 排序机械臂

@[凯瑟琳98](/space/show?uid=77798) 没错呀。
by 一起加油! @ 2018-07-31 15:28:20


@[AK全场](/space/show?uid=47958) 可样例就死了…… 样例 464566 我这个 464666
by 凯瑟琳98 @ 2018-07-31 16:59:02


你好。我把你的代码改了一下,可以过样例了。希望对你有启示(~~我也在这里翻过车~~) line 53: pushdown(int) ```cpp t[x].rev^=1; t[l].rev^=1; t[r].rev^=1; ``` 改为 ```cpp t[x].rev^=1; if(l) t[l].rev^=1; if(r) t[r].rev^=1; ```
by nosta @ 2018-09-14 11:17:41


@[凯瑟琳98](/space/show?uid=77798)
by nosta @ 2018-09-14 11:18:04


@[saotomeku](/space/show?uid=125139) 嗯您能讲一下这样的原理吗 我觉得如果儿子节点为空不会影响答案啊 我之前自己解决的方式是在splay操作前将要操作的区间翻转标记全部下放
by 凯瑟琳98 @ 2018-09-14 11:36:56


@[凯瑟琳98](/space/show?uid=77798) 感性理解下。假设在某次下放之前虚拟节点0不带标记,下放以后0就带上标记了。这个标记可能在某一次访问中下传到root节点,就相当于给序列整体翻转了。
by nosta @ 2018-09-14 11:49:53


@[saotomeku](/space/show?uid=125139) 大概明白了 感谢
by 凯瑟琳98 @ 2018-09-14 13:52:14


|