洛谷 P1412 经营与开发 解题报告
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 经营与开发 解题报告的更多相关文章
- 洛谷 P1412 经营与开发
/* 粘一下开始写的暴力吧 虽然没啥价值 */ #include<iostream> #include<cstdio> #include<cstring> #inc ...
- 洛谷P1412 经营与开发题解
题目链接QWQ这里就不阐述了: 题解部分: 从题面上来看,这是个dp(递推)的题目. 但是dp要满足无后效性,但这个题为了取最值,得考虑从当前开始一直持续到结束的p的影响. 这让我们怎么满足无后效性? ...
- 洛谷_Cx的故事_解题报告_第四题70
1.并查集求最小生成树 Code: #include <stdio.h> #include <stdlib.h> struct node { long x,y,c; ...
- 洛谷 P2317 [HNOI2005]星际贸易 解题报告
P2317 [HNOI2005]星际贸易 题目描述 输入输出格式 输入格式: 输出格式: 如果可以找到这样的方案,那么输出文件output.txt中包含两个整数X和Y.X表示贸易额,Y表示净利润并且两 ...
- 洛谷 P3802 小魔女帕琪 解题报告
P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...
- 洛谷 P2606 [ZJOI2010]排列计数 解题报告
P2606 [ZJOI2010]排列计数 题目描述 称一个\(1,2,...,N\)的排列\(P_1,P_2...,P_n\)是\(Magic\)的,当且仅当对所以的\(2<=i<=N\) ...
- 洛谷1303 A*B Problem 解题报告
洛谷1303 A*B Problem 本题地址:http://www.luogu.org/problem/show?pid=1303 题目描述 求两数的积. 输入输出格式 输入格式: 两个数 输出格式 ...
- 洛谷 P3084 [USACO13OPEN]照片Photo 解题报告
[USACO13OPEN]照片Photo 题目描述 农夫约翰决定给站在一条线上的\(N(1 \le N \le 200,000)\)头奶牛制作一张全家福照片,\(N\)头奶牛编号\(1\)到\(N\) ...
- 洛谷 P1379 八数码难题 解题报告
P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初 ...
随机推荐
- Spark SQL -- Hive
使用Saprk SQL 操作Hive的数据 前提准备: 1.启动Hdfs,hive的数据存储在hdfs中; 2.启动hive -service metastore,元数据存储在远端,可以远程访问; 3 ...
- excel的宏与VBA入门(三)——流程控制
一.条件控制IF if 逻辑表达式 then 语句块 end if 带else的if语句: If 逻辑表达式1 Then 语句块1 ElseIf 逻辑表达式2 Then 语句块2 ElseIf 逻辑表 ...
- 【TPM】tpm搭建基础指南
pm君第一次通过各种摸索,成功搭建了tpm模拟环境,本篇博客记录了如何去搭建tpm模拟环境,希望能给大家一些帮助. 参考资料(推荐看) ubuntu下安装TPM模拟器 --成功步骤:参考至第2节-安装 ...
- FAT32文件系统学习(1) —— BPB的理解
FAT 32 文件系统学习 1.本文的目标 本文将通过实际读取一个FAT32格式的U盘来简单了解和学习FAT32文件系统的格式.虽然目前windwos操作系统的主流文件系统格式是NTFS,但是FAT3 ...
- 汇编 EBP ,ESP 寄存器
知识点: CALL框架 EBP寄存器 栈底指针 ESP寄存器 栈顶指针 一.EBP栈底指针 EBP是一个特殊的寄存器,通过EBP+偏移量 可以访问CALL里边的局部变量.它的低16位叫BP ...
- npm install —— 从一个简单例子,看本地安装与全局安装的区别
npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install grunt # 本地安装 npm install -g ...
- 软件测试_APP测试_主要测试内容
最近要测试手机端APP,所以查找了一下有关APP测试需要注意的事项,做了一下总结.如有补充,欢迎评论! 手机APP测试与WEB测试其实相似,但是也有特别需要注意的一些不同点,此处只列出部分注意事项,相 ...
- 回溯-uva129
题目链接:https://vjudge.net/problem/UVA-129 题解: 这道题卡了一会儿的时间,一开始最大的问题是如何判断添加了一个字符之后,该字符串是不是一个困难的串,解决办法是:利 ...
- Final版本互评——杨老师粉丝群《PinBall》
基于NABCD评论作品,及改进建议 1.根据(不限于)NABCD评论作品的选题 (1)N(Need,需求) 随着民族自信的觉醒,民主文化越来越受到重视,语文在高考中的比重也不断增加,在这种大环境下,成 ...
- 20135119_涂文斌 实验三 敏捷开发与XP实践
北京电子科技学院(BESTI) 实 验 报 告 课程: Java 班级:1351 姓名:涂文斌 学号:20135119 成绩: ...