序列选数(最大费用最大流 || 优先队列)
Posted jpphy0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了序列选数(最大费用最大流 || 优先队列)相关的知识,希望对你有一定的参考价值。
问题
- 给定偶数个数 a [ 1 ] 、 a [ 2 ] 、 . . . 、 a [ n ] a[1]、a[2]、...、a[n] a[1]、a[2]、...、a[n]。
- 分别输出从这n个数里选 1 、 2 、 3 、 … 、 n / 2 1、2、3、…、n/2 1、2、3、…、n/2 个数时的和的最大值,选数规则是不能同时选相邻的数。
- 1 ≤ a [ i ] ≤ 1000 , 2 ≤ n ≤ 100000 1\\leq a[i] \\leq 1000,2 \\leq n \\leq 100000 1≤a[i]≤1000,2≤n≤100000
- 输入:
1
10
737 757 860 778 371 591 20 241 768 442 - 输出
860
1628
2365
2956
2871
分析
- 顶点数1e5,使用费用流则超时
- 当第2个数选择768后,在x+768 >= 241+442无法满足时,将会选择768前后的241和442两个数,且放弃768(反悔操作)
- 当选择了737后,就不可能再放弃737(无对应的反悔操作)
- 网络流(可将in和out之间的数字顶点删除,数字成为in和out两顶点间路径的费用系数)