20分求救
查看原帖
20分求救
1043130
lucas_vio楼主2024/10/7 10:49
#include <bits/stdc++.h>
//p×(1-+0.01k)
using namespace std;
double dp[1000005], c, k, w; //n星球k损耗c修复w初始值
int n, f[100005], cao_le_ge_sao_gang[100005];

int main() {
	cin >> n >> c >> k >> w;
	for (int i = 1; i <= n; i++) {
		scanf("%d %d", &f[i], &cao_le_ge_sao_gang[i]);;
		for (int i = n; i >= 1; i--) {
			if (f[i] == 1) {
				dp[i] = max(dp[i + 1], cao_le_ge_sao_gang[i] + dp[i + 1] * (1 - 0.01 * k));
			} else {
				dp[i] = max(dp[i + 1], -cao_le_ge_sao_gang[i] + dp[i + 1] * (1 + 0.01 * c));
			}

		}
	}
	printf("%.2lf", dp[1]*w);
	return 0;
}
2024/10/7 10:49
加载中...