题目名称 773. [USACO Open11] 修剪草坪
输入输出 mowlawn.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarMakazeu 于2012-04-17加入
开放分组 全部用户
提交状态
分类标签
USACO 动态规划 单调队列
分享题解
通过:161, 提交:471, 通过率:34.18%
GravatarSamle 100 0.011 s 0.78 MiB C++
Gravatarmxr2022 100 0.015 s 1.53 MiB C++
GravatarHZOI_蒟蒻一只 100 0.017 s 0.58 MiB C++
Gravatarhunter 100 0.017 s 2.22 MiB C++
GravatarFaller 100 0.023 s 15.57 MiB C++
Gravatar521 100 0.026 s 0.26 MiB C++
Gravatardateri 100 0.026 s 0.77 MiB C++
GravatarHeHe 100 0.026 s 2.47 MiB C++
GravatarkZime 100 0.027 s 2.09 MiB C++
Gravatarlalalala 100 0.032 s 3.36 MiB C++
本题关联比赛
近期练习题回顾
关于 修剪草坪 的近10条评论(全部评论)
回复 @liu_runda :
j的范围错了吧
应该是(i-1)-(i-j+1)+1<=k
化简可以得到j<=k+1
Gravatar+1s
2018-01-31 10:33 8楼
心好累
Gravatarconfoo
2017-02-23 10:58 7楼
出门左转1384拿双倍exp
文件名忘改了RE了一次...QnQ
Gravatarsxysxy
2016-11-09 17:13 6楼
GravatarHzoi_Go灬Fire
2016-10-16 15:54 5楼
楼上正解
Gravatardateri
2016-07-25 16:28 4楼
单调队列优化DP,调了一节课。。。设f[i]为“不选取第i头奶牛时,前i-1头奶牛所能获得的最大效率”,sum[i,j]为第i头到第j头奶牛的效率之和(包括端点)
则 f[i]=max{f[i-j]+sum[i-j+1,i-1],(i-1)-(i-j+1)<=k},这玩意就可以单调队列求了。
sum[i,j]用前缀和求。数据类型unsigned long long 比较保险。
Gravatarliu_runda
2016-03-31 18:03 3楼
改题路漫漫…
Gravatar水中音
2014-11-06 07:56 2楼
好多int64。。
Gravatar筽邝
2014-11-05 22:07 1楼

773. [USACO Open11] 修剪草坪

★★   输入文件:mowlawn.in   输出文件:mowlawn.out   简单对比
时间限制:1 s   内存限制:128 MiB

Description


在一年前赢得了小镇的最佳草坪比赛后,FJ变得很懒,再也没有修剪过草坪。现在,
新一轮的最佳草坪比赛又开始了,FJ希望能够再次夺冠。

然而,FJ的草坪非常脏乱,因此,FJ只能够让他的奶牛来完成这项工作。FJ有N
(1 <= N <= 100,000)只排成一排的奶牛,编号为1...N。每只奶牛的效率是不同的,
奶牛i的效率为E_i(0 <= E_i <= 1,000,000,000)。

靠近的奶牛们很熟悉,因此,如果FJ安排超过K只连续的奶牛,那么,这些奶牛就会罢工
去开派对:)。因此,现在FJ需要你的帮助,计算FJ可以得到的最大效率,并且该方案中
没有连续的超过K只奶牛。

Input


* 第一行:空格隔开的两个整数N和K

* 第二到N+1行:第i+1行有一个整数E_i

Output


* 第一行:一个值,表示FJ可以得到的最大的效率值。

Sample Input

5 2
1
2
3
4
5
输入解释:
FJ有5只奶牛,他们的效率为1,2,3,4,5。他们希望选取效率总和最大的奶牛,但是
他不能选取超过2只连续的奶牛

Sample Output

12

HINT

FJ可以选择除了第三只以外的其他奶牛,总的效率为1+2+4+5=12。


Source