P1412 经营与开发

题目描述

\(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)\)

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

金钱可以透支。

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

输入输出格式

输入格式:

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

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

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

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

输出格式:

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

输入输出样例

输入样例#1:

5 50 50 10

1 10

1 20

2 10

2 20

1 30

输出样例#1:

375.00

说明

对于30%的数据 n<=100

另有20%的数据 n<=1000;k=100

对于100%的数据 n<=100000; 0<=k,c,w,a[i],b[i]<=100;保证答案不超过10^9


这个,真的想不到的说啊。。

来手玩一下样例的最大是什么

10(20+(1-0.5)(-10+(1+0.5)30)),选的是2,3,5

通过这个式子我们可以猜到,每次只用保存里面括号的最大值就行了,当不选时就不会产生。在形式上有一点类似秦久韶公式。

也类似于从后往前做DP

这个真没找到什么思维导向性。

我觉得大概可以怎么想,100000?完整存储状态要三维?题目形式还这么简单?手玩手玩手玩找规律。可以积累一下反着做的思维导向。有些题就必须得先读入询问再反向求解的,一般删边的题大多有此套路。


Code:

#include <cstdio>
const int N=100010;
double max(double x,double y){return x>y?x:y;}
int n;
double k,c,w;//开采系数,维修系数,初始能力
double d[N][2],dp[N];
int main()
{
scanf("%d",&n);
scanf("%lf%lf%lf",&k,&c,&w);
c/=100.0,k/=100.0;
for(int i=1;i<=n;i++)
scanf("%lf%lf",d[i],d[i]+1);
for(int i=n;i;i--)
if(d[i][0]==1)
dp[i]=max(dp[i+1],dp[i+1]*(1.0-k)+d[i][1]);
else
dp[i]=max(dp[i+1],dp[i+1]*(1.0+c)-d[i][1]);
printf("%.2f\n",dp[1]*w);
return 0;
}

2018.6.28

洛谷 P1412 经营与开发 解题报告的更多相关文章

  1. 洛谷 P1412 经营与开发

    /* 粘一下开始写的暴力吧 虽然没啥价值 */ #include<iostream> #include<cstdio> #include<cstring> #inc ...

  2. 洛谷P1412 经营与开发题解

    题目链接QWQ这里就不阐述了: 题解部分: 从题面上来看,这是个dp(递推)的题目. 但是dp要满足无后效性,但这个题为了取最值,得考虑从当前开始一直持续到结束的p的影响. 这让我们怎么满足无后效性? ...

  3. 洛谷_Cx的故事_解题报告_第四题70

    1.并查集求最小生成树 Code: #include <stdio.h> #include <stdlib.h>   struct node {     long x,y,c; ...

  4. 洛谷 P2317 [HNOI2005]星际贸易 解题报告

    P2317 [HNOI2005]星际贸易 题目描述 输入输出格式 输入格式: 输出格式: 如果可以找到这样的方案,那么输出文件output.txt中包含两个整数X和Y.X表示贸易额,Y表示净利润并且两 ...

  5. 洛谷 P3802 小魔女帕琪 解题报告

    P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...

  6. 洛谷 P2606 [ZJOI2010]排列计数 解题报告

    P2606 [ZJOI2010]排列计数 题目描述 称一个\(1,2,...,N\)的排列\(P_1,P_2...,P_n\)是\(Magic\)的,当且仅当对所以的\(2<=i<=N\) ...

  7. 洛谷1303 A*B Problem 解题报告

    洛谷1303 A*B Problem 本题地址:http://www.luogu.org/problem/show?pid=1303 题目描述 求两数的积. 输入输出格式 输入格式: 两个数 输出格式 ...

  8. 洛谷 P3084 [USACO13OPEN]照片Photo 解题报告

    [USACO13OPEN]照片Photo 题目描述 农夫约翰决定给站在一条线上的\(N(1 \le N \le 200,000)\)头奶牛制作一张全家福照片,\(N\)头奶牛编号\(1\)到\(N\) ...

  9. 洛谷 P1379 八数码难题 解题报告

    P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初 ...

随机推荐

  1. WPF Good UI

          <Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.co ...

  2. redis系列--redis4.0深入持久化

    前言 在之前的博文中已经详细的介绍了redis4.0基础部分,并且在memcache和redis对比中提及redis提供可靠的数据持久化方案,而memcache没有数据持久化方案,本篇博文将详细介绍r ...

  3. Selenium 爬取全国水质周报Word

    很久没写爬虫了 ,昨天有个学姐说需要爬取水质的一些数据,给了个网站( http://xxfb.hydroinfo.gov.cn/ssIndex.html?type=2&tdsourcetag= ...

  4. [Oracle]如果误删了某个数据文件,又没有被备份,能否恢复?

    如果你有从这个数据文件创建之前,直到现在的,所有的ArchiveLog 和 Online REDO,是有可能进行恢复的. 执行: RMAN> restore datafile <filei ...

  5. Flutter - 创建侧滑菜单(不使用navigatior,仅改变content)

    之前写过一篇文章,Flutter - 创建横跨所有页面的侧滑菜单.这个里面中使用了Navigator.of(context).push来导航到新的页面. 这次介绍一种不使用导航,仅仅改变content ...

  6. Hadoop版本的选择问题

    自从2013年下半年开始,hadoop的版本开始了快速的更新换代,这和通信和互联网行业(ICT)的发展是密切相关的.随着移动网络的和宽带网络的覆盖以及数据传输速率的提升,线上的数据有了爆炸式的增长.这 ...

  7. linux一切皆文件之tcp socket描述符(三)

    一.知识准备 1.在linux中,一切皆为文件,所有不同种类的类型都被抽象成文件(比如:块设备,socket套接字,pipe队列) 2.操作这些不同的类型就像操作文件一样,比如增删改查等 二.环境准备 ...

  8. CoreDNS Plugins ---> hosts

    需求 kubernetes集群外部有少量服务,kubernetes集群内部pod需要通过服务所在的主机的hostname访问服务. 解决方案 通过coredns的hosts插件配置kubernetes ...

  9. 原生 JavaScript 实现 AJAX、JSONP

    相信大多数前端开发者在需要与后端进行数据交互时,为了方便快捷,都会选择JQuery中封装的AJAX方法,但是有些时候,我们只需要JQuery的AJAX请求方法,而其他的功能用到的很少,这显然是没必要的 ...

  10. 《Linux内核设计与实现》Chapter 18 读书笔记

    <Linux内核设计与实现>Chapter 18 读书笔记 一.准备开始 一个bug 一个藏匿bug的内核版本 知道这个bug最早出现在哪个内核版本中. 相关内核代码的知识和运气 想要成功 ...