題目描述
在以後的若干天裡戴維將學習美元與德國馬克的匯率。編寫程式幫助戴維何時應買或賣馬克或美元,使他從100美元開始,最後能獲得最高可能的價值。
輸入格式
輸入檔案的第一行是乙個自然數n,1≤n≤100,表示戴維學習匯率的天數。
接下來的n行中每行是乙個自然數a,1≤a≤1000。第i+1行的a表示預先知道的第i+1天的平均匯率,在這一天中,戴維既能用100美元買a馬克也能用a馬克購買100美元。
輸出格式
輸出檔案的第一行也是唯一的一行應輸出要求的錢數(單位為美元,保留兩位小數)。
注意:考慮到實數算術運算中進製的誤差,結果在正確結果0.05美元範圍內的被認為是正確的,戴維必須在最後一天結束之前將他的錢都換成美元。
輸入 #1
5輸出 #1400300
500300
250
266.67一道基礎dp題,設dp[i][0]為美元最大收益,dp[i][1]為馬克最大收益;
於是可得出狀態轉移方程
dp[i][0]=max(dp[i-1][0],dp[i-1][1]/a[i]*100);
dp[i][1]=max(dp[i-1][1],dp[i-1][0]*a[i]/100);**:
#include
using
namespace std;
int a[
110]
;double dp[
110][2
];intmain()
printf
("%.2f\n"
,max
(dp[n][0
],dp[n][1
]/(double
)a[n]
*100))
;return0;
}
P1968 美元匯率 懷疑智商超過海平面
也是一道貪心題,一些計算 然而我卻弄得很複雜 既然我們要的是最後的最大值,那我們為什麼要注意中間的細節呢 記錄每天我們能拿到的最大值,然後輸出,完美結束 include include include using namespace std const int maxn 200 int n doub...
洛谷 P1970 花匠 線性dp
花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h nh1 h2 hn 設當一部分花被移走後,剩下的花的高度依...
洛谷P1970 花匠 線性dp
給出n 1 e5 n leq1e5 n 1e 5個數,滿足對於所有的g2i g2 i 1,g2 i g2 i 1g g g g g2i g2 i 1 g2i g2 i 1 或者g 2i i 1,g2 i i 1g g2 i i 1 g2i i 1 對理解dp是乙個不錯的題,dp重在設計出來的狀態是乙...