【正经题解】金融大鳄
2024-02-22 11:43:46
发布于:浙江
45阅读
0回复
0点赞
#include <iostream>
using namespace std;
const int MAX_N = 210;
double dp[MAX_N][2]; // dp[i][0]表示第i天保持美元,dp[i][1]表示第i天换成马克
double exchangeRate[MAX_N]; // 存储每天的汇率
int main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
int n;
cin >> n;
dp[0][0] = 100.00, dp[0][1] = 0.00; // 初始状态,第0天持有100美元,不持有马克
// 输入每天的汇率
for (int i = 1; i <= n; i++)
cin >> exchangeRate[i];
// 动态规划,计算每天的最优策略
for (int i = 1; i <= n; i++) {
dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] / exchangeRate[i]);
dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] * exchangeRate[i]);
}
printf("%.2lf", dp[n][0]); // 输出最后一天保持美元的最大值
return 0;
}
这里空空如也
有帮助,赞一个