最优挤奶法

Grade Open Time Friday, 19 September 2014, 10:08 am
Discount 0.8 Time Discount Friday, 26 September 2014, 10:08 am
Allow late Yes Close Time Friday, 26 September 2014, 10:08 am
Input file optmilk.in Output file optmilk.out

【题目描述】

FJ最近新购进了一个牛舍,里面装有N(1<=N<=40,000)台挤奶器,这些挤奶器排成了一行,编号依次为1~N。

第i台挤奶器一天能挤M(i)(1<=M(i)<=100,000)单位的牛奶。不幸的是,由于这些机器挨的太近,所以当某台机器工作的时候,它左右相邻的两台机器就不能开机工作,(两端的两台机器都只有一个相邻的机器),FJ可以自由地决定每天打开哪些台机器。

FJ想知道在连续的D(1<=D<=50,000)天里这些机器的最大产量。在每一天开始的时候,他有充足的时间来对其中一台机器i进行保养从而使其产量从当天开始就升级至一个新的值。现给你一份每日的改造清单,请你告诉FJ这D天的最大产量和,注意,结果可能会超出32位二进制所能表示的范围。


【输入格式】

第1行为N和D;

接下来有N行,其中第i行为M(i)的初始值;

再接下来有D行,其中第i行有两个整数k和m,表示FJ在第i天会把第k台机器的产量升级至m。

【输出格式】

输出只有一行,即D天的最大产量和。

【样例输入】

5 3

1

2

3

4

5

5 2

2 7

1 10

【样例输出】

32

【提示】

输出解释:

第1天,最优产量为2+4=6(或1+3+2=6),第二天,最优产量为7+4=11,第3天的最优产量为10+3+2=15。

【来源】

在此键入。