#abc466e. Range Flip

    ID: 4363 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>普及+/提高动态规划线性DP状态设计

Range Flip

题目描述

NN 张卡片排成一排,编号为 1,2,,N1, 2, \ldots, N

ii 张卡片正面写着整数 AiA_i,反面写着整数 BiB_i。初始时所有卡片都是正面朝上

你最多可以进行 KK 次下面的操作:

  • 选择满足 1lrN1 \le l \le r \le N 的整数 l,rl, r,把编号在 llrr 之间的每一张卡片都翻面(把原本朝下的一面翻到朝上)。

操作结束后,请求出所有卡片朝上一面所写数字之和的最大值

输入格式

N K
A_1 B_1
A_2 B_2
...
A_N B_N

输出格式

输出最大的数字之和。

输入示例 1

7 2
2 1
6 9
3 5
9 2
4 8
7 4
5 6

输出示例 1

45

示例 1 说明

11 次操作取 l=2,r=5l = 2, r = 5,第 22 次操作取 l=4,r=4l = 4, r = 4

此时第 44 张卡片被翻了两次,等于没翻,仍是正面。最终朝上的数字依次为 2,9,5,9,8,7,52, 9, 5, 9, 8, 7, 5,和为 4545

这说明「翻两次等于没翻」,多个区间可以互相抵消。

输入示例 2

5 6
9 6
3 2
8 1
7 5
8 4

输出示例 2

35

示例 2 说明

这里 K=6K = 6NN 还大,可以让每张卡片都独立取到 max(Ai,Bi)\max(A_i, B_i)9+3+8+7+8=359 + 3 + 8 + 7 + 8 = 35注意「最多 KK 次」,一次都不操作也是允许的。

输入示例 3

9 1
2 7
9 4
1 1
6 1
3 4
8 9
1 2
7 5
3 9

输出示例 3

47

示例 3 说明

只允许一次操作,也就是最多只能翻转一段连续区间,需要仔细挑选这段区间的左右端点。

约束条件

  • 1N2×1051 \le N \le 2 \times 10^5
  • 1K101 \le K \le 10
  • 1Ai,Bi1091 \le A_i, B_i \le 10^9
  • 所有输入值均为整数