你駕駛著一台帶有鑽頭(初始能力值 \(w\))的飛船,按既定路線依次飛過 \(n\) 個星球。
星球籠統的分為 \(2\) 類:資源型和維修型。( \(p\) 為鑽頭當前能力值)
資源型:含礦物質量 \(a[i]\),若選擇開採,則得到 \(a[i]\times p\) 的金錢,之後鑽頭損耗 \(k\%\),即 \(p=p\times (1-0.01k)\)。
維修型:維護費用 \(b[i]\),若選擇維修,則支付 \(b[i]\times p\) 的金錢,之後鑽頭修復 \(c\%\),即 \(p=p\times (1+0.01c)\)。
注:維修後鑽頭的能力值可以超過初始值(你可以認為是翻修+公升級)
金錢可以透支。
請作為艦長的你仔細抉擇以最大化收入。
假設到了第 \(i\) 個星球時,鑽頭的能力值為 \(p\),我們依然可以設其為 \(1\),然後後面所有運算乘上 \(p\) 即可。
所以我們倒著 dp,設 \(f[i]\) 表示假設到第 \(i\) 個星球的時候鑽頭能力值為 \(1\),接下來經過 \(i\sim n\) 的星球最大收益。
假設下乙個星球是資源型的,顯然
\[f[i]=\max(f[i+1],f[i+1]\times (1-k\%)+a[i])
\]維修性同理。答案即為 \(f[1]\)。
時間複雜度 \(o(n)\)。
#include using namespace std;
const int n=100010;
int n,k,c,w,opt[n],a[n];
double f[n];
int main()
P1412 經營與開發
原題連線 此題作為今天校內測試的t3,由於我太蒟蒻沒有想到要用 dp做,打個o 2n 的搜尋瀟灑暴零qwq 聽了 water lift 的講解並看了不下 10 分鐘的題解後,我終於明白了這個題。其實這個題 dp 還是很容易看出來的 對於每個星球,我們可以選或不選,這不就是標準的 dp 轉移方程嘛?鑽...
P1412 經營與開發(DP 倒序)
傳送門 你駕駛著一台帶有鑽頭 初始能力值w 的飛船,按既定路線依次飛過n個星球。星球籠統的分為2類 資源型和維修型。p為鑽頭當前能力值 1.資源型 含礦物質量a i 若選擇開採,則得到a i p的金錢,之後鑽頭損耗k 即p p 1 0.01k 2.維修型 維護費用b i 若選擇維修,則支付b i p...
洛谷P2871與揹包
揹包用於尋找最優解,適用於在一堆數值中找尋符合題目要求條件的最優組合。揹包其實就是兩個迴圈 蒟蒻的蒟蒻總結 以p2871為例 在可裝下的條件下找到最大價值組合。起初想用 自認為是動歸 蒟蒻的思路 倒著想 第五個有裝下裝不下兩種情況 1.裝下 五個的價值和。2裝不下 判斷 四個的最大價值和 與 三個的...