这道题一开始我是这么想的

最后的答案肯定是某次的马克换回来的,但这个该怎么确定??

实际上应该把范围缩小,只看最后一次和倒数第二次之间有什么联系。

可以发现,只有两种可能,最后一天换或者不换。换的话就要求出

最后一天之前最多的马克,不换的话就是最后一天前最多的美元。

设d[i]为前i次最多的美元,m[i]为前i次最多的马克,x为今天换的值

那么可以得到

d[i] = max(d[i-1], m[i-1] * 100 / x)

m[i] = max(m[i-1], d[i-1] * x / 100)

最后d[n]就是答案

大致步骤

先尝试设立状态

然后判断当前状态可以由哪些状态推来,写转移方程

写出答案和起始条件

#include<cstdio>
#include<algorithm>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std; const int MAXN = 112;
double d[MAXN], m[MAXN];
int n; int main()
{
double x;
scanf("%d%lf", &n, &x);
d[0] = 100;
m[0] = x;
REP(i, 1, n)
{
scanf("%lf", &x);
d[i] = max(d[i-1], m[i-1] * 100 / x);
m[i] = max(m[i-1], d[i-1] * x / 100);
}
printf("%.2lf\n", d[n-1]);
return 0;
}

最新文章

  1. javascript 数字格式化
  2. RSA原理及生成步骤
  3. 【VLC-Android】LibVLC API简介(相当于VLC的MediaPlayer)
  4. 关于 redis、memcache、mongoDB 的对比(转载)
  5. vc++ basic chapt1
  6. db2删除数据库
  7. My Rules of Information
  8. Configuring My Site in SharePoint 2010
  9. Code for the Homework1
  10. CentOS7 列出服务和对应端口
  11. java strtus2 DynamicMethodInvocation配置入门 &quot; ! &quot;访问action里面的方法
  12. Listview多条目展示
  13. 状态开关按钮(ToggleButton)与开关(Switch)的功能与用法
  14. POJ1845-Sumdiv大数约数和
  15. Codeforces Round #434 (Div. 2, based on Technocup 2018 Elimination Round 1)&amp;&amp;Codeforces 861B Which floor?【枚举,暴力】
  16. Linux find用法
  17. python(函数)
  18. 稀疏贴图 SparseTexture
  19. 抗性基因数据库CARD介绍
  20. HeadFIrst Ruby 第二章总结 methods and classes

热门文章

  1. [MST] Use Volatile State and Lifecycle Methods to Manage Private State
  2. 一:Java之面向对象基本概念
  3. UVA 11825 - Hackers&amp;#39; Crackdown 状态压缩 dp 枚举子集
  4. mysql-过程与函数
  5. hdoj 1719 Friend
  6. 基于IBM Bluemix的数据缓存应用实例
  7. OCP-1Z0-051-题目解析-第50题
  8. 设计url 通过分发的方式 Xadmin_demo
  9. js 实现 水仙花数
  10. PostgreSQL Replication之第九章 与pgpool一起工作(5)