小奇挖礦 Explo

2021-07-26 18:57:23 字數 1328 閱讀 6637

題目背景

小奇要開採一些礦物,它駕駛著一台帶有鑽頭(初始能力值 w)的飛船,按既定路線依次飛過喵星系的 n 個星球。

問題描述

星球分為 2 類:資源型和維修型。

1.資源型:含礦物質量 a[i],若選擇開採,則得到 a[

i]∗p

的金錢,之後鑽頭損耗 k%,即p=

p∗(1

−0.01k)

2.維修型:維護費用 b[i],若選擇維修,則支付 b[

i]∗p

的金錢,之後鑽頭修復c%,即 p=

p∗(1

+0.01c)

(p 為鑽頭當前能力值)

注:維修後鑽頭的能力值可以超過初始值請你幫它決策最大化這個收入

輸入格式

第一行 4 個整數 n,k,c,w。

以下 n 行,每行 2 個整數 type,x。

type 為 1 則代表其為資源型星球,x 為其礦物質含量 a[i];

type 為 2 則代表其為維修型星球,x 為其維護費用 b[i];

輸出格式

輸出一行乙個實數(保留兩位小數),表示要求的結果。

樣例輸入

5 50 50 10

110

120

210

220

130

樣例輸出

375.00

資料範圍

對於 30%的資料 n<=100

對於 50%的資料 n<=1000,k=100

對於 100%的資料 n<=100000,0<=k,c,w,a[i],b[i]<=100

保證答案不超過 109

題解上的思路:可以發現,當前的決策只對後面的開採有影響,且剩餘耐久度與之後的開採收益成正比,如果倒著考慮這個問題,得出i-n的星球1點耐久度所能獲得的最大收益,從後往前dp,得出最大值最後乘w就是答案

神奇的dp,考試時想不到啊

**超短的

#include

#include

using namespace std;

const int maxn=100001;

int n,w,t[maxn],a[maxn];

double k,c,ans;

int main()

小奇挖礦 解題報告

小奇挖礦 題目背景 小奇要開採一些礦物,它駕駛著一台帶有鑽頭 初始能力值w 的飛船,按既定路線依次飛過喵星系的n個星球。問題描述 星球分為2類 資源型和維修型。1.資源型 含礦物質量a i 若選擇開採,則得到a i p的金錢,之後鑽頭損耗k 即p p 1 0.01k 2.維修型 維護費用b i 若選...

小奇挖礦 2 題解

小奇挖礦 2 題目 題目背景 小奇飛船的鑽頭開啟了無限耐久 精準採集模式!這次它要將原礦運到泛光之源的礦石交易市場,以便為飛船公升級無限非概率引擎。問題描述 現在有m 1個星球,從左到右標號為0到m,小奇最初在0號星球。有n處礦體,第i處礦體有ai單位原礦,在第bi個星球上。由於飛船使用的是老式的跳...

BZOJ4711 小奇挖礦

題目背景 小奇在喵星系使用了無限非概率驅動的採礦機,以至於在所有星球上都採出了一些礦石,現在它準備建一些礦石倉 庫並把礦石運到各個倉庫裡。問題描述 喵星系有n個星球,標號為1到n,星球以及星球間的航線形成一棵樹。所有星球間的雙向航線的長度都為1。小奇要 在若干個星球建礦石倉庫,設立每個倉庫的費用為k...