洛谷 P1968 美元汇率

题目传送门

解题思路:

一道很简单的DP

AC代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 
 4 using namespace std;
 5 
 6 int n;
 7 double wl[101],f[101][2];
 8 //f[i][0]表示第i天可以获得最多多少马克
 9 //f[i][1]表示第i天可以获得最多多少美元 
10 
11 int main() {
12     scanf("%d",&n);
13     for(int i = 1;i <= n; i++)
14         scanf("%lf",&wl[i]);
15     f[1][0] = 100;//dollar
16     f[1][1] = wl[1];//mark
17     for(int i = 2;i <= n; i++)
18         for(int j = 1;j <= i; j++) {
19             f[i][0] = max(f[i][0],max(f[j][0],f[j][1] / wl[i] * 100));
20             f[i][1] = max(f[i][1],max(f[j][1],f[j][0] * wl[i] / 100));
21         }
22     printf("%.2lf",f[n][0]);
23     return 0;
24 }

猜你喜欢

转载自www.cnblogs.com/lipeiyi520/p/11986337.html