Wannafly挑戰賽12 A 銀行存款 DP

2021-08-17 19:46:05 字數 1236 閱讀 2419

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 32768k,其他語言65536k

special judge, 64bit io format: %lld

題目描述

銀行的定期存款一般有1年期、2年期、3年期、5年期四種。

現在我們有1塊錢,我們想知道,通過合理安排存款方式,n年以後這1塊錢最多會變成幾塊錢。

假設在這n年裡利率不變,且n年以後這筆錢不能處於2年期、3年期、5年期存款年限的中間(否則會變成活期)。

輸入描述:

第一行五個數n, r1, r2, r3, r5分別表示年數,1年期年利率,2年期年利率,3年期年利率和5年期年利率。

假設我們有1塊錢,i年期存款到期後這1塊錢會變成(1 + ri)i塊錢。

1 <= n <= 20 且 n為整數,

0.04 <= r1 <= r2 <= r3 <= r5 <= 0.05;

輸出描述:

一行乙個數表示答案。保留5位小數(絕對誤差或相對誤差在1e-5之內的結果均判斷為通過)。

示例1

輸入 8 0.0430 0.0449 0.0458 0.0473

輸出 1.44112

是個dp題,沒想到吧!

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define ll long long int

#define inf 0x3f3f3f3f

const

double eps = 1e-8;

const

int maxn = 1e5 + 10;

double dp[30];

double r[6];

int main()

for (int i = 1; i <= 26; i++) dp[i] = 0.0; dp[0] = 1;

for (int i = 0; i <= n; i++)

cout

<< setiosflags(ios::fixed) << setprecision(5) << dp[n] 0;}

wannanfly 挑戰賽12 A 銀行存款

銀行的定期存款一般有1年期 2年期 3年期 5年期四種。現在我們有1塊錢,我們想知道,通過合理安排存款方式,n年以後這1塊錢最多會變成幾塊錢。假設在這n年裡利率不變,且n年以後這筆錢不能處於2年期 3年期 5年期存款年限的中間 否則會變成活期 第一行五個數n,r1 r2 r3 r5 分別表示年數,1...

牛客Wannafly挑戰賽12 題解

傳送門 說是比賽題解,其實我只會前三題 後面的一定補 t1題意,在乙個長度為n的時間內,問如何選擇存款期限,使得收益最大。dp include include include include using namespace std define fi first define se second d...

Wannafly挑戰賽A 概率DP

給你乙個長 n 的序列,m 次查詢 每次查詢給乙個 x,然後 從序列的最左端 1 開始,每次隨機的選擇乙個右端點 r,如果兩個端點間的區間和不超過 x 就進行一次分割,然後把左端點變成 r 1,否則一直隨機下去。問這樣分割出來的期望段數 第一行兩個數 n,m 之後一行 n 個數表示這個序列 之後m行...