SSL2759 2017年10月6日提高组T2 挖矿(dp)
2017-10-06 16:22
465 查看
2017年10月6日提高组T2 挖矿
DescriptionInput
Output
分析:正着做显然不可做,因为有后效性所以无法DP,所以我们考虑倒着做我们不难设f[i] 表示i-n 这些星球的最大价值, 那么对于开采型星球f[i]=max(f[i+1],f[i+1]*(1-0.01k)+a[i]),维护型星球类似,然后就可以满分了。
代码
#include <cstdio> #define maxn 200000 using namespace std; int a[maxn],n; double f[maxn],b[maxn],k,c,w; double max(double x,double y) { if (x>y) return x; return y; } int main() { scanf("%d%lf%lf%lf",&n,&k,&c,&w); k=1-0.01*k; c=1+0.01*c; for (int i=1;i<=n;i++) scanf("%d%lf",&a[i],&b[i]); for (int i=n;i>=1;i--) { if (a[i]==1) f[i]=max(f[i+1],f[i+1]*(double)k+b[i]); if (a[i]==0) f[i]=max(f[i+1],f[i+1]*(double)c-b[i]); } f[1]*=w*1.0; printf("%.2lf",f[1]); }
相关文章推荐
- 2017年10月6日提高组T2 挖矿
- SSL2843 2017年11月8日提高组T2 拆网线(树形dp)
- SSL2674 2017年8月9日提高组T2 覆盖(dp)
- SSL2812 2017年10月30日提高组T2 凤凰院凶真(dp,LCIS)
- SSL2688 2017年8月14日提高组T2 温度
- SSL2845 2017年11月8日提高组T2 序列操作(贪心,树状数组,差分)
- [DP] ZROI 2017 提高6 T2 异或统计
- 2017年10月6日提高组T2 猫公司
- SSL2803 2017年10月28日提高组 sum(dp)
- SSL2731 2017年9月16日提高组T2 学校联网(kruskal)
- SSL2677 2017年8月10号提高组T2 飞行(spfa)
- 2017年10月6日提高组T2 有趣的异或
- SSL2792 2017年10月25日提高组T2 数字问题(数位dp)
- 【SSLGZ 2794】2017年10月26日提高组T2 Dark(dp)
- SSL2454 NOIP2015提高组模拟题八 采药(背包dp)
- SSL2844 2017年11月8日提高组T2 奇怪的队列(线段树贪心)
- SSL2706 2017年8月17日提高组T2 考试(贪心)
- SSL2810 2017年10月30日提高组T2 数论(math)
- 【SSLGZ 2759】挖矿(dp)
- SSL2764 2017年10月8日提高组T1 didi(dp)