JZOJ 5377. 【NOIP2017提高A組模擬9.19】開拓
Description
Input
Output
Sample Input
5 50 50 10
1 10
1 20
2 10
2 20
1 30
Sample Output
375.00
Data Constraint
Solution
本題最大的瓶頸在於“當前鑽頭能力”,我們嘗試不儲存“當前鑽頭能力”。
F[i] 表示前i 個星球的最優收入。但這很明顯是不行的,因為當前鑽頭能力會影響到後面的過程。不嚴謹的說,當前鑽頭能力具有“後效性”。
但是這個當前鑽頭能力對後程的影響無非就是乘上一個數值。
就好像初始鑽頭能力是
w ,實際上你可以按1 來做,最後再把a 乘上w 。正難則反 ,
F[i] 表示第i——n 個星球的最優收入,且假設從第i 個星球開始時鑽頭能力是1 。轉移過程就變得簡單:
如果在第
i 個星球開採,那麼第i——n 個星球的初始鑽頭能力就是1∗(1−0.01∗k) 。換句話說,就是:
F[i+1]∗(1−0.01k) 。所以:F[i]=Max{F[i+1],F[i+1]∗(1−0.01k)+a[i]} 對於維護型星球,大同小異,就係數和代價的正負而已。
實際處理時陣列也不用,用變數儲存即可,時間複雜度
O(N) 。
Code
#include<cstdio>
using namespace std;
const int N=100001;
double ans;
int a[N];
bool b[N];
inline int read()
{
int X=0,w=1; char ch=0;
while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();}
while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar();
return X*w;
}
inline double max(double x,double y)
{
return x>y?x:y;
}
int main()
{
int n=read();
double k=read(),c=read(),w=read();
k=1-0.01*k,c=1+0.01*c;
for(int i=1;i<=n;i++) b[i]=read()==1,a[i]=read();
for(int i=n;i;i--) ans=max(ans,b[i]?ans*k+a[i]:ans*c-a[i]);
printf("%.2lf",ans*w);
return 0;
}
相關推薦
JZOJ 5377. 【NOIP2017提高A組模擬9.19】開拓
Description Input Output Sample Input 5 50 50 10 1 10 1 20 2 10 2 20 1 30 Sam
JZOJ 100027. 【NOIP2017提高A組模擬7.7】表示式
JZOJ 100027. 【NOIP2017提高A組模擬7.7】表示式 題目 Description Input 一行兩個整數k,p。 Output 一行一個整數表示答案。 Sample Input 1 3 Sample Output 6 D
JZOJ 5400. 【NOIP2017提高A組模擬10.7】Repulsed
Description 小w 心裡的火焰就要被熄滅了。 簡便起見,假設小w 的內心是一棵n -1 條邊,n 個節點的樹。 現在你要在每個節點裡放一些個滅火器,每個節點可以放任意多個。 接下來每個
JZOJ 100035. 【NOIP2017提高A組模擬7.10】區間
Description Input Output Sample Input sample1: 4 2 10 5 1 1 10 sample2: 1000
JZOJ 5404. 【NOIP2017提高A組模擬10.10】Graph
Description 給定一張n個點m條邊的無向圖,每條邊連線兩個頂點,保證無重邊自環,不保證連通 你想在這張圖上進行若干次旅遊,每次旅遊可以任選一個點x作為起點,再走到一個與x 直接有邊相連的點y,再走到一個與y 直接有邊相連的點z 並結束本次旅遊 作
JZOJ5372.【NOIP2017提高A組模擬9.17】貓鏈表+貪心+堆優化
margin targe sga gin bt5 ie8 usm shu auc x壹鼐順51比http://shequ.docin.com/txqq_cb3d1e346f 惹M3桓7O2疽http://www.docin.com/app/user/userinfo?use
jzojs 5384. 【NOIP2017提高A組模擬9.23】四維世界
Description 眾所周知,我們常感受的世界是三維的。 Polycarp突然對四維空間產生了興趣,他想對四維空間進行一些研究。但是在此之前,他必須先對三維世界瞭解透徹。 於是Polycarp決定從零維,也就是一個點,開始他的研究。我們把一個點放在三維空間中,Polycarp把這
【jzoj5346】【NOIP2017提高A組模擬9.5】【NYG的揹包】【貪心】
description solution 考慮貢獻為正的,顯然花費a最少先做,考慮貢獻為負的,可以將ab調轉過來,那顯然花費最少的先做,也就是b最小的先做。 code #include<
【jzoj5389】【NOIP2017提高A組模擬9.26】【解夢】
description DYY 很善於解夢,昨晚,他夢見自己來到了一個高度發達的國度。 眾所周知,我們現在有極為常用的三級運算,+、、^。其中,a*b=a+a+a+…+a(b 個a),a^b=a
【jzoj5360】【NOIP2017提高A組模擬9.12】【Shorten Diameter】
description 給定一棵有n 個點的樹,現要求不斷刪點直到樹的直徑<=K,求最少需要刪除的點數。 一個點可以被刪掉當且僅當該點的度數為1。 保證樹的形態為隨機生成(請勿過度解
【jzoj5350】【NOIP2017提高A組模擬9.7】【陶陶摘蘋果】【動態規劃】
description solution 題目的意思是板凳不可重疊,資料不能直接摘蘋果。對蘋果排序,對凳子按r從小到大排序。設f[i][j]表示前i個凳子,選了j個,最後一個選了i的最大貢獻,列
JZOJ 4778. 【NOIP2016提高A組模擬9.14】數列編輯器
Problem Description Input Output Sample Input 8 I 2 I -1 I 1 Q 3 L D R Q 2 Sample
JZOJ5384. 【NOIP2017提高A組模擬9.23】四維世界
Description 眾所周知,我們常感受的世界是三維的。 Polycarp突然對四維空間產生了興趣,他想對四維空間進行一些研究。但是在此之前,他必須先對三維世界瞭解透徹。 於是Polycarp決定從零維,也就是一個點,開始他的研究。我們把一個點放在三維
JZOJ5372. 【NOIP2017提高A組模擬9.17】貓 連結串列+貪心+堆優化
題意:一個長度為n的環,每個點有貢獻,取了一個就不能取他的相鄰,問取1-n/2個的最優方案是多少。 DP可能會掛,我自己試了試好像會出點問題= =畢竟是環,如果類似這種問題,不能拆環一般就不要DP。
【JZOJ A組】【NOIP2017提高A組模擬7.10】隨機
題目 思路 水法 正解時不可能的,這輩子都不可能的 首先,我們發現選兩個端點作為si,sj才是最優的。 所以我們可以列舉區間長度(i #include<cstdio> #include<cmath> using
【JZOJ 5400】【NOIP2017提高A組模擬10.7】Repulsed
DH ---------以上初三THU/PKU大爺---- Alan_cty LYD XHM HZJ ZZ ---以下是大神%-- YMW Samjia2000 werkeytom_ftd Crazy_czy WorldWide_D Yxuan
JZOJ_100029. 【NOIP2017提高A組模擬7.8】陪審團 (Standard IO)
qsort sta begin tput 關心 關鍵字 int 最有 制度 Description 陪審團制度歷來是司法研究中的一個熱議話題,由於陪審團的成員組成會對案件最終的結果產生巨大的影響,訴訟雙方往往圍繞陪審團由哪些人組成這一議題激烈爭奪。 小 W 提出了
JZOJ 5439. 【NOIP2017提高A組集訓10.31】Calculate
題目 資料範圍 題解 直接求每個 ⌊ T
JZOJ 5455【NOIP2017提高A組衝刺11.6】拆網線
目錄: 題目: 分析: 程式碼: 題目: 傳送門 分析: 設f[i][0]f[i][0]表示在xx的子樹中,xx沒有被選擇的情況下最多有多少對點是兩兩配對的 f[
jzoj100026. 【NOIP2017提高A組模擬7.7】圖(倍增)
100026. 【NOIP2017提高A組模擬7.7】圖 Description 有一個n個點n條邊的有向圖,每條邊為<i,f(i),w(i)>,意思是i指向f(i)的邊權為w(i)的邊,現