#gesp202606l6p1. 条形蛋糕

条形蛋糕

条形蛋糕

题目描述

寒假到了,小杨同学打算找一份兼职,顺便体验一下打工人的生活。

小杨同学给一家蛋糕店发送了一份自己的简历,希望可以在寒假来这里帮忙。店长最近正好遇到了一个难题:店里每天会做一条长条蛋糕,但是不同长度的蛋糕块卖出的价格不同,应该怎么分才能卖得最多呢?

有趣的是店长曾经学习过计算机专业。他最近对动态规划算法很感兴趣,于是打算用这个问题考一考小杨同学,问题如下:

给定一条长度为 nn 的长条蛋糕和一个价格表,该价格表表示长度为 iii=1,2,,ni = 1, 2, \ldots, n)的蛋糕块的价格为 pip_i。求蛋糕的分割方案,使得总销售价格最大,注意蛋糕块的长度必须为整数。

输入格式

第一行一个正整数 nn1n1031 \le n \le 10^3),表示长条蛋糕的总长度。

第二行 nn 个正整数 p1,p2,,pnp_1, p_2, \ldots, p_n1pi1051 \le p_i \le 10^5),表示不同长度蛋糕块的价格。

输出格式

一行一个正整数,表示最大总销售价格。

样例输入 #1

4
1 5 8 9

样例输出 #1

10

样例输入 #2

10
1 5 8 9 10 17 17 20 24 30

样例输出 #2

30

样例解释

第一个样例中,长度为 1 的蛋糕价值为 1,长度为 2 的蛋糕价值为 5,长度为 3 的蛋糕价值为 8,长度为 4 的蛋糕价值为 9;

总长度为 4 的长条蛋糕,有 {4},{1,3},{2,2},{1,1,2},{1,1,1,1}\{4\}, \{1,3\}, \{2,2\}, \{1,1,2\}, \{1,1,1,1\} 五种本质不同的分法。

其对应的总销售价格分别为 9,9,10,7,49, 9, 10, 7, 4,故最大总销售价格为 10。

第二个样例中,长度为 10 的长条蛋糕,销售价格最大的分法为 {10}\{10\},最大总销售价格为 30。

数据范围

对于所有测试点,保证 1n1031 \le n \le 10^31pi1051 \le p_i \le 10^5

知识点与难度

本题涉及的知识点从属于 GESP 6级(简单动态规划、完全背包变形),难度等级:⭐⭐


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤5 / 特殊: 全相同价格 / 特殊: 单调递增 / 特殊: N=1 边界
2 15 9~11 Hack: N=1 / Hack: 全 p[i]=1 / Hack: 大价格
3 30 12~20 中规模 N≈100~500 / 大规模 N≈1000 压力
4 25 21~25 随机 N=1~1000 回归