CSPS模拟 85

    WWB大佬的bitset映射真是太强了!

    %%%

    

    T1

      观察样例,猜规律。

    T2

      对题目的翻译工作用了很长时间

      翻译错了好几次..

      观察到奇环没法染色,选的边必须把奇环弄断

      如果在偶环上,偶环就变得没法染色了,所以不能在偶环上

      翻译完成后

扫描二维码关注公众号,回复: 7578069 查看本文章

      这是什么?

      算了乱搞吧

      先弄个树出来,然后对于非树边,会和树边形成一个环

      树上差分一下在哪个环里,维护一下有几个奇环,那么树上的边必须不在偶环里然后必须在所有奇环里

      好有道理的样子,打出来交了。

      

      考试快结束了

      非树边的贡献??

      完戏

      赶紧再乱搞一发,我猜每个非树边只在一个奇环里!(瞎猜)

      所以直接给非树边的num赋值成1算了

      

      然后他就A了(RP--?)

      然后经大神skyh指点,我跟正解撞上了。。

      (又开心又怕RP--)

      其实对非树边num=1的赋值没有问题,

      如果有两个奇环的话,那么两条非树边一定分离,或者形成偶环废了

      然后树边的贡献就严格按照定义(题意)来就没问题

      %%%skyh被大样例坑了错失正解

    T3

      再%%%WWB

      没想到啊,真没想到,还能

      真·大暴力·STL映射STL

      找到相关询问集合相同的所有下标

      然后让这些下标分别平衡,就可以满足题意。

      否则一定不满足,因为每个边界都必须满足在其方向上的“括号需求”为0

      如何平衡?用一个贪心

      为了防止括号资源短缺,每个子序列内部的不平衡能自己抵消就自己抵消

      代价为$(min(Lneed,Rneed)+1)/2$

      如果括号不平衡,从外部引进

      引进量为$abs(Lneed-Rneed)/2$

      同时维护两个变量$NeedL NeedR$

      用以平衡不同子序列之间的括号流动,如果子序列A需要左括号,B需要右括号

      由于贡献只能计算一次,那么两次需求只有一次花费

      那么记录一下有多少左括号曾被需求,等到需要右括号时优先使用那部分的免费左括号。

      右括号需求多时同理

      

猜你喜欢

转载自www.cnblogs.com/yxsplayxs/p/11732278.html
85