#P14581. [Bulgarian 2025]stock
[Bulgarian 2025]stock
题目描述
商店在过去的 天中每天都会以价格 买卖某种物品。
你可以进行若干次交易,每次交易由两个下标 决定,表示在第 天买入、在第 天卖出,这次交易的利润为:
在任意时刻,你至多只能持有一件该物品。因此,不同交易之间不能“交叉”。更形式化地说,若你进行的交易依次为
则必须满足:
对于固定的 ,求“至多进行 次交易时的最大利润”并不难;现在你需要对每个 ()都求出对应的最大利润。
输入格式
第一行输入一个整数 (),表示天数。
第二行输入 个整数 (),表示每天的价格。
输出格式
输出 个整数,其中第 个整数表示:当最多允许进行 次交易时,可以获得的最大利润。
数据范围与子任务
| 子任务 | 分值 | |
|---|---|---|
| 1 | 11 | 20 |
| 2 | 25 | 2000 |
| 3 | 10 | 10000 |
| 4 | 26 | 100000 |
| 5 | 28 | 500000 |
样例输入
10
90 10 30 20 40 35 30 50 40 70
样例输出
60 70 80 90 90 90 90 90 90 90
样例解释
这 天的价格依次为:
用 表示“以价格 买入”,用 表示“以价格 卖出”。
下面给出若干种最优方案:
| 一种最优交易方式 | 利润 | |
|---|---|---|
| 1 | 在价格 时买入,在价格 时卖出 | |
| 2 | 在价格 买入、 卖出;再在价格 买入、 卖出 | |
| 3 | 在价格 买入、 卖出;在价格 买入、 卖出;在价格 买入、 卖出 | |
| 4 到 10 | 可以把上涨区间继续拆分,最大利润达到 |