挖煤(coal)
挖煤(coal)
solution
我好弱,啥也想不到。
想了很久dp,这有后效性啊。
结果倒着做就可以了,因为后面的不会影响前面的。
考虑前面的影响后面:挖煤相当于让后面所有a[I]*(1+k%)
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
int n,a[100005],op[100006];
double k,c,w,f[100005];
int main()
{
cin>>n>>k>>c>>w;
for(int i=1;i<=n;i++)scanf("%d%d",&op[i],&a[i]);
for(int i=n;i>=1;i--){
if(op[i]==1)f[i]=max(f[i+1],f[i+1]*(1-k/100)+a[i]);
else f[i]=max(f[i+1],f[i+1]*(1+c/100)-a[i]);
}
printf("%.2lf\n",f[1]*w);
return 0;
}