「NOIP模拟赛」小奇挖矿

2014年3月15日3,3710

原题目名:经营与开发

2015.9.13日hzwer重制了题面

「题目背景」

小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值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

1 10

1 20

2 10

2 20

1 30

 

「样例输出」

375.00

 

「数据范围」

对于30%的数据 n<=100

对于50%的数据 n<=1000,k=100

对于100%的数据 n<=100000,0<=k,c,w,a[i],b[i]<=100

保证答案不超过10^9

题解

对于k=100的情况,贪心

对于100%的数据

可以发现,当前的决策只对后面的开采有影响,且剩余耐久度与之后的开采收益成正比,如果倒着考虑这个问题,得出i-n的星球1点耐久度所能获得的最大收益,从后往前dp,得出最大值最后乘w就是答案

 

avatar
  Subscribe  
提醒