Description

4X概念体系,是指在PC战略游戏中一种相当普及和成熟的系统概念,得名自4个同样以“EX”为开头的英语单词。

eXplore(探索)

eXpand(拓张与发展)

eXploit(经营与开发)

eXterminate(征服)

——维基百科

今次我们着重考虑exploit部分,并将其模型简化:

你驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞过n个星球。

星球笼统的分为2类:资源型和维修型。(p为钻头当前能力值)

1.资源型:含矿物质量a[i],若选择开采,则得到a[i]*p的金钱,之后钻头损耗k%,即p=p*(1-0.01k)

2.维修型:维护费用b[i],若选择维修,则支付b[i]*p的金钱,之后钻头修复c%,即p=p*(1+0.01c)

注:维修后钻头的能力值可以超过初始值(你可以认为是翻修+升级)

金钱可以透支。

请作为舰长的你仔细抉择以最大化收入。

Input

第一行4个整数n,k,c,w。

以下n行,每行2个整数type,x。

type为1则代表其为资源型星球,x为其矿物质含量a[i];

type为2则代表其为维修型星球,x为其维护费用b[i];

Output

一个实数(保留2位小数),表示最大的收入。

Solution

观察到当前的决策对于之后的状态有影响,不满足无后效性,“正难则反”,我们考虑倒着推。

可以看出来一个星球选择与否对后面的影响是成比例的,也就是说只是系数的差别。

举个例子,第i个是资源型,我们可以搞出dp[i+1](代表从i+1开始选,1~i一概略过)的最大金钱数,钦定第i个开始选的系数为1,那么dp[i]=max(dp[i+1], a[i]+dp[i+1]*(1-0.01*k))

转移方程的意思是:

dp[i+1] 表示当前的不选

a[i]+dp[i+1]*(1-0.01*k) 表示当前的选,加上金钱 a[i] ,因为此后的钻头能力变为 (1-0.01*k) ,所以从 dp[i+1] 获得的金钱也要乘 (1-0.01*k)

#include<cstdio>
#include<iostream>
using namespace std;

int n;
];
];
double k,c,w,now;

signed main(){
    scanf("%d%lf%lf%lf",&n,&k,&c,&w);
    k=-+0.01*c;
    ;i<=n;i++)
        scanf("%d%lf",&type[i],&x[i]);
    ;i--){
        ) now=max(now,now*k+x[i]);
        else now=max(now,now*c-x[i]);
    }
    printf("%.2lf",now*w);
    ;
}

 

[模拟赛] T3 Exploit的更多相关文章

  1. 体育成绩统计——20180801模拟赛T3

    体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...

  2. 20180520模拟赛T3——chess

    [问题描述] 小美很喜欢下象棋. 而且她特别喜欢象棋中的马. 她觉得马的跳跃方式很独特.(以日字格的方式跳跃) 小芳给了小美一张很大的棋盘,这个棋盘是一个无穷的笛卡尔坐标. 一开始\(time=0\) ...

  3. 20161005 NOIP 模拟赛 T3 解题报告

    subset 3.1 题目描述 一开始你有一个空集,集合可以出现重复元素,然后有 Q 个操作 1. add s 在集合中加入数字 s. 2. del s 在集合中删除数字 s.保证 s 存在 3. c ...

  4. ztz11的noip模拟赛T3:评分系统

    代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  5. 20180711模拟赛T3——聚变

    文件名: fusion 题目类型: 传统题 时间限制: 3秒 内存限制: 256MB 编译优化: 无 题目描述 知名科学家小A在2118年在计算机上实现了模拟聚变的过程. 我们将她研究的过程简化. 核 ...

  6. 4.26 省选模拟赛 T3 状压dp 差分求答案

    LINK:T3 比较好的题目 考试的时候被毒瘤的T2给搞的心态爆炸 这道题连正解的思路都没有想到. 一看到题求删除点的最少个 可以使得不连通. 瞬间想到最小割 发现对于10分直接跑最小割即可. 不过想 ...

  7. NOIP欢乐模拟赛 T3 解题报告

    3.小澳的葫芦 (calabash.cpp/c/pas) [题目描述] 小澳最喜欢的歌曲就是<葫芦娃>. 一日表演唱歌,他尽了洪荒之力,唱响心中圣歌. 随之,小澳进入了葫芦世界. 葫芦世界 ...

  8. 字符串模拟赛T3

    只看我的做法就够了 #include<iostream> #include<cstdio> #include<string> #include<cstring ...

  9. 神奇的NOIP模拟赛 T3 LGTB 玩THD

    LGTB 玩THD LGTB 最近在玩一个类似DOTA 的游戏名叫THD有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面每个小兵有一定的血量hi,杀死后有一定的金钱gi每一秒,他都可以攻 ...

随机推荐

  1. C#访问修饰符(public,private,protected,internal,sealed,abstract)

    为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及 ...

  2. Excel 2010高级应用-条状图(五)

    Excel 2010高级应用-条状图(五) 基本操作如下: 1.新建一个Excel空白文档,并命名条状图 2.单击"插入",找到条状图的样图 3.选择其中一种类型的条状图样图,在空 ...

  3. zTree实现获取当前选中的第一个节点在同级节点中的序号

    zTree实现获取当前选中的第一个节点在同级节点中的序号 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTr ...

  4. Caused by:java.sql.SQLException:ORA-01008:并非所有变量都已绑定

    1.错误描述 Caused by:java.sql.SQLException:ORA-01008:并非所有变量都已绑定 2.错误原因 3.解决办法

  5. JDBCTemplate简化JDBC的操作(三)需要注意的地方

    一,代码 List<String> cols = orgJdbcTemplate .queryForList( "SELECT COLUMN_NAME FROM informat ...

  6. 浅谈js中null和undefined的区别

    在JS中,null和undefined是经常让人摸不着头脑的东西,尤其是在数据初始化以及处理的过程中,经常稍微不注意,就会让页面在渲染时出现报错,下面来细说下,这两者之间的区别: null 表示一个对 ...

  7. 促进客户转化,提高客单价!酷客多小程序发布版本V1.0.9!

    商户和企业主的又一次福音!酷客多小程序新零售o2o商城系统酷爱用户,为了追求极致的用户体验,没日没夜地沉浸于新功能的开发,经过一番努力,新功能终于上线啦! 此次版本迭代,在原有功能基础上做了大幅提升, ...

  8. 数据分析神器Colab的初探

    为什么要使用Colab 使用过Jupyter(参看<「极客时间」带来的社区价值思考>章节:社区交流的基建设施)的朋友,一定会醉心于它干净简洁的设计,以及在"摆脱Python命令行 ...

  9. 描述下@Component,@Repository,@Service,@Scope,@Autowired,@Inject,@Value标记的作用

    1.@Component为通用注解. 2.@Repository为持久层组件注解. 3.@Service为业务层组件注解. 4.@Scope为Bean的作用域注解. 5.@Autowired,@Inj ...

  10. luogu【P3387】【模板】缩点

    原题入口 PS:这个题数据是由Hany01大大出出来的 %%% 这个题显然是一道强联通+DAGdp的题 (题目背景有= =) 缩点的原因就是:不缩会一直在一个地方绕圈圈 而且不能进行后面的DAPdp ...