#P2858. [USACO06FEB] 奶牛零食(Treats for the Cows)

0

[USACO06FEB] 奶牛零食(Treats for the Cows)

[USACO06FEB] 奶牛零食(Treats for the Cows)

题目描述

约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱。为此,约翰购置了 NN(1≤N≤20001 \leq N \leq 2000)份美味的零食来卖给奶牛们。每天约翰售出一份零食。当然约翰希望这些零食全部售出后能得到最大的收益,这些零食有以下这些有趣的特性:

  • 零食按照 1,…,N1, \ldots, N 编号,它们被排成一列放在一个很长的盒子里。盒子的两端都有开口,约翰每天可以从盒子的任一端取出最外面的一个。
  • 与美酒与好吃的奶酪相似,这些零食储存得越久就越好吃。当然,这样约翰就可以把它们卖出更高的价钱。
  • 每份零食的初始价值不一定相同。约翰进货时,第 ii 份零食的初始价值为 ViV_i(1≤V≤10001 \leq V \leq 1000)。
  • 第 ii 份零食如果在被买进后的第 aa 天出售,则它的售价是 Vi×aV_i \times a。

ViV_i 表示的是从盒子顶端往下的第 ii 份零食的初始价值。约翰告诉了你所有零食的初始价值,并希望你能帮他计算一下,在这些零食全被卖出后,他最多能得到多少钱。

输入格式

第一行一个正整数 NN。

接下来 2∼N+12 \sim N+1 行,第 i+1i+1 行为一个正整数 ViV_i。

输出格式

一行一个整数表示答案。

样例输入 #1

5
1
3
1
5
2

样例输出 #1

43

数据范围

样例的最优解是:按 1→5→2→3→41 \to 5 \to 2 \to 3 \to 4 的顺序卖零食,得到的钱数是 $1 \times 1 + 2 \times 2 + 3 \times 3 + 4 \times 1 + 5 \times 5 = 43$。

知识点与难度

本题涉及的知识点从属于 CSP-J,难度(CF Rating):1250。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例及最小边界测试
1 20 3~8 1≤N≤201 \le N \le 20(验证贪心错误的小规模数据)
2 15 9~11 Hack 数据:两端相等需向内看才能决策(卡每次贪心取较小端点的错误算法!)、N=1N = 1
3 30 12~20 100≤N≤1000100 \le N \le 1000
4 25 21~25 N=2000N = 2000 满规模区间 DP 测试

出处:原题链接