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

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

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

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

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

设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;
} 

转载于:https://www.cnblogs.com/sugewud/p/9819435.html

caioj 1063 动态规划入门(一维一边推1:美元和马克)相关推荐

  1. caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)

    很容易想到f[i]为前i项的最优价值,但是我一直在纠结如果重量满了该怎么办. 正解有点枚举的味道. 就是枚举当前这辆车与这辆车以前的组合一组,在能组的里面取最优的. 然后要记得初始化,因为有min,所 ...

  2. caioj 1069 动态规划入门(二维一边推2:顺序对齐)(最长公共子序列拓展总结)

    caioj 1068是最长公共子序列裸体,秒过, 就不写博客了 caioj 1069到1071 都是最长公共字序列的拓展,我总结出了一个模型,屡试不爽    (1) 字符串下标从1开始,因为0用来表示 ...

  3. 洛谷P1280 caioj 1085 动态规划入门(非常规DP9:尼克的任务)

    这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...

  4. caioj 1081 动态规划入门(非常规DP5:观光游览)

    这道题和前面的分组的题有点像 就是枚举最后一组的长度. 然后组数可以在第一层循环也可以在第二层循环 我自己的话就统一一下在第一层循环吧 然后这道题题意我一直没理解清楚,浪费了很多时间,写复杂了 同时初 ...

  5. caioj 1077 动态规划入门(非常规DP1:筷子)

    首先可以看出排序之后,最优解肯定是每一对都相邻才是最优的 那么我们就要找构成最优解的相邻组 设f[i][j]是前i个字符,k对的最小值 如果当前这个筷子不取的话,f[i][j] = f[i-1][j] ...

  6. 动态规划入门到熟悉,看不懂来打我啊

    动态规划入门到熟悉,看不懂来打我啊 兔子hebtu666 本文链接:https://blog.csdn.net/hebtu666/article/details/100585136 2.1斐波那契系列 ...

  7. LQ训练营(C++)学习笔记_动态规划入门

    动态规划入门 五.动态规划入门 1.动态介绍 1.1动态规划基本思路 1.2 动态规划基本概念 1.2.1 阶段 1.2.2 状态 1.2.3 决策 1.2.4 状态转移方程 1.2.5 策略 1.3 ...

  8. 动态规划入门问题:猴子与香蕉

    动态规划入门问题猴子与香蕉 一.猴子与香蕉 题目描述 一组研究人员正在设计一个测试猴子IQ的实验.他们把香蕉吊在屋顶上,同时给猴子提供了砖块.如果猴子够聪明,它会把砖块一个个叠起来做成一个塔,然后爬上 ...

  9. 动态规划入门之国王的金矿

    最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.net/ ...

最新文章

  1. ARTS打卡计划第四周-TIPS-自定义一个LikeFilter
  2. cisco engine memory
  3. 吴恩达机器学习之多变量线性回归实现部分
  4. Acoustica 7 for mac最新版 (数字音频编辑器)
  5. JS去除数组中重复的值(四种方法)
  6. 使用visio 2010建立sql server数据模型——手动画、利用逆向工程
  7. 【转】图解Sql2005创建分区表的全过程
  8. gitee如何搭建mysql_Gitee的下载安装配置及使用步骤详解
  9. Windows电脑搜索功能不能用怎么办
  10. 人工智能python营_AI人工智能训练营
  11. Selenium + C# 实现模拟百度贴吧签到 2
  12. JavaScript 页面刷新方法
  13. 计算机之父图灵获英女王赦免
  14. 沟通的法宝!三季人法则
  15. 我的日常工作剖析,美好的一天,从每一天开始。
  16. The APR based Apache Tomcat Native library which allows optimal performance in production environm
  17. 在Windows下安装和使用vim
  18. Matlab学习日记(5)二维曲线的绘制(plot与fplot)
  19. 测试你好世界这个标题
  20. QGIS教程-4:添加精美底图的三种方法

热门文章

  1. c语言printf%%,c语言printf实现同一位置打印输出的实例分享
  2. 二叉平衡树算法c语言,算法9-9~9-12:平衡二叉树的基本操作 (C语言代码)
  3. node更新到最新版本_云顶之弈10.24版本临时更新永恩、劫大砍,最新上分阵容推荐...
  4. wxwidgets mysql_Ubuntu下wxWidgets学生公寓管理编程,sqlite3的用法(mysql数据_MySQL
  5. 胃癌2019csco指南_领读指南沈琳:2019CSCO胃癌指南重要更新
  6. matlab的默认字体_matlab默认字体设置
  7. win2012每次启动显示服务器管理器,win2012r2服务器管理器打开角色.功能出错
  8. oracle怎样开启服务,Oracle 11g必须开启的服务及服务详细介绍
  9. 赋值后页面不渲染_第七节:框架搭建之页面静态化的剖析
  10. C++ :sqlite3使用: