【20180903】集训题t0

原题叫小奇挖矿,一道比较简单的dp,但我dp练的太少了,所以没想出来.......

dp记第i个星球到第n个星球的花费,然后倒着递推即可,方程很简单,具体看代码吧

#include
using namespace std;
const int maxn=100007;
int n,w,t[maxn],a[maxn];
double k,c,ans;
int main(){
	//freopen("explo.in","r",stdin);
	//freopen("explo.out","w",stdout);
	scanf("%d%lf%lf%d",&n,&k,&c,&w);
	k=1-0.01*k;c=1+0.01*c;
	for(int i=1;i<=n;i++)scanf("%d%d",&t[i],&a[i]);
	for(int i=n;i;i--)
		if(t[i]==1)ans=max(ans,ans*k+a[i]);
		else ans=max(ans,ans*c-a[i]);
	printf("%.2lf\n",ans*w);
}

 

你可能感兴趣的:(dp)