Processing math: 100%
4
11
2016
0

[bzoj]3272&3502&3638&3267: Cf172 k-Maximum Subsequence Sum

真是迟了好久,开始以为这个就不写辣,然而今天突然意识有一些模糊,印象有一点浅,就当复习一下

什么?四倍经验?传送门?太麻烦了不放


先弄个超级源,然后拆点,A>A,向A连容量为1费用为0的边,A>A连容量为1费用为权值的边,然后所有A向超级汇连边,对于相邻的A,BA>B连容量1费用0的边,题目就转化成了增广k的费用流问题

考虑线段树优化,也就是区间最大子串,模拟增广过程,每次找到最大子串将这个区间取反,做k次,如果一次增广ans0那就停下

然而事情并没有那么简单,因为要取反所以要记下该最大子串的左右端点,以为只要维护最大子串就足够了吗?naive!因为要取反。。所以取反后的子串就是原来的最小子串_(:зゝ∠)_,所以还要记最小子串,这样算下来一共16个标记,我不知道有没有更简洁的做法。。总之跑的慢是事实

3502要开long long,然后!Fk内存不够,于是就使一使

 

loading...

Category: bzoj | Tags: 线段树优化费用流 | Read Count: 1541

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com