题目 1787

保龄球

查看题解 ↗GitHub ↗如何评测
题号
1787
时间限制
2000 ms
内存限制
256 MB
标签
动态规划
来源
信息学奥赛一本通 · 高手训练篇·五、动态规划(高手训练)

【题目描述】

一排球瓶,每个球瓶上面有一个数字,表示击中它的得分。给你一定数量的保龄球。例如,一排球瓶如下:

文本
2 8 5 1 9 6 9 3 2

你有22个保龄球,每个球可以击中33个球瓶宽度的区域,你可以获得的最大得分为3939分,这两次分别击中2+8+5=15,9+6+9=242+8+5=15,9+6+9=24。 球瓶的数字有的为负数,可以利用“被击倒的球瓶留下的空白位置”或者“原先球瓶左边和右边本来的空白位置”去尽可能地避免这些负分球。例如,这个例子:

文本
2 8 -5 3 5 8 4 8 -6

如果给你33个球,每个球可以击中连续33个球瓶的区域,那么你可以最多获得3838分,这三次分别击中:2+8=10,3+5+8=16,4+8=122+8=10,3+5+8=16,4+8=12。

文本
2 8 5 1 9 6 9 3 2
文本
2 8 -5 3 5 8 4 8 -6

【输入】

输入有多组测试数据。 第一行t(1≤t≤10)t(1≤t≤10)表示测试数据的个数。 每个测试数据第一行33个整数n(1≤n≤10000),k(1≤k≤500),w(1≤w≤100)n(1≤n≤10000),k(1≤k≤500),w(1≤w≤100),nn表示球瓶数量,kk表示球的数量,ww表示球能击中连续WW个球瓶的宽度。 接下来nn行,每行一个整数按顺序表示对应球瓶的分值(−10000≤-10000≤分值≤10000≤10000)。

【输出】

输出最大得分。

【输入样例】

文本
2
9 2 3
2
8
5
1
9
6
9
3
2
9 3 3
2
8
-5
3
5
8
4
8
-6

【输出样例】

文本
39
38

【提示】

【数据规模】 对于20%的数据,n≤100n≤100。 对于40%的数据,k≤30k≤30。 对于100%的数据,1≤n≤10000,1≤k≤5001≤n≤10000,1≤k≤500。

数据下载

题目 1787 的公开数据

正在读取文件列表…

常用命令

题目 1787 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。