专栏文章

题解:P13985 [PO Final 2023] 通胀 / Inflation

P13985题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minzzza6
此快照首次捕获于
2025/12/02 11:07
3 个月前
此快照最后确认于
2025/12/02 11:07
3 个月前
查看原文

解题思路

其实这个问题可以这样想:每天我们都有两种选择:
  • 把当天的数字当作百分点,直接加到当前通胀率上。
  • 把当天的数字当作百分比,让当前通胀率乘以 1+数字÷1001 + \text{数字} \div 100
为了得到最终的最大值,我们应该在每天选择那个能让通胀率变得更高的方式。

代码实现

CPP
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
    double I;
    cin >> I;
    vector<double> arr(30);
    for (int i = 0; i < 30; i++)
    {
        cin >> arr[i];
    }

    vector<double> dp(31);
    dp[0] = I;
    for (int i = 1; i <= 30; i++)
    {
        dp[i] = max(dp[i - 1] + arr[i - 1], dp[i - 1] * (1 + arr[i - 1] / 100.0));
    }
    cout << fixed << setprecision(10) << dp[30] << endl;
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...