洛谷——P1968 美元汇率
2024-08-31 08:43:46
https://www.luogu.org/problem/show?pid=1968#sub
题目背景
此处省略maxint+1个数
题目描述
在以后的若干天里戴维将学习美元与德国马克的汇率。编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值。
输入输出格式
输入格式:
输入文件的第一行是一个自然数N,1≤N≤100,表示戴维学习汇率的天数。
接下来的N行中每行是一个自然数A,1≤A≤1000。第i+1行的A表示预先知道的第i+1天的平均汇率,在这一天中,戴维既能用100美元买A马克也能用A马克购买100美元。
输出格式:
输出文件的第一行也是唯一的一行应输出要求的钱数(单位为美元,保留两位小数)。
注意:考虑到实数算术运算中进位的误差,结果在正确结果0.05美元范围内的被认为是正确的,戴维必须在最后一天结束之前将他的钱都换成美元。
输入输出样例
输入样例#1:
5
400
300
500
300
250
输出样例#1:
266.66
说明
样例解释 (无需输出)
Day 1 ... changing 100.0000 美元= 400.0000 马克
Day 2 ... changing 400.0000 马克= 133.3333 美元
Day 3 ... changing 133.3333 美元= 666.6666 马克
Day 5 ... changing 666.6666 马克= 266.6666 美元
用f[i][0]表示第i天的美元
f[i][1]表示第i天的马克
如果今天是美元,就比较昨天是美元今天不变和昨天是马克今天换美元——f[i][0]=max(f[i-1][0],f[i-1][1]/a[i]*100);
若今天是马克~~~~~f[i][1]=max(f[i-1][1],f[i-1][0]/100*a[i]);
#include <algorithm>
#include <cstdio> using namespace std; int n;
double a[];
double f[][]; int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%lf",&a[i]);
f[][]=100.000;
f[][]=0.000;
for(int i=;i<=n;i++)
{
f[i][]=max(f[i-][],f[i-][]/a[i]*);
f[i][]=max(f[i-][],f[i-][]/*a[i]);
}
printf("%.2lf",f[n][]);
return ;
}
最新文章
- rsync命令详解
- Effective C++ 之 Item 3:尽可能使用 const
- easyui-combobox的取值问题
- Android开发之SD卡上文件操作
- bzoj1324
- hadoop namenode多次格式化后,导致datanode启动不了
- UIView animateWithDuration 使用详解
- laravel memcached使用
- NancyFx 2.0的开源框架的使用-Caching
- java基础阅读卷1整理(待更新)
- python教程6-3:排序
- 微信小程序 初步认识一(微信运动步数)
- C# IE浏览器 判断是否已经打开了指定Url
- BroadcastReceiver插件化解决方案
- A - 不要62
- winSCP无法连接虚拟机Linux解决
- springboot跨域配置
- [SoapUI] Property Expansion in soapUI
- flask学习视频
- webservice之helloword(web)rs
热门文章
- Leetcode:remove_element
- nginx源代码分析--进程间通信机制 &;amp; 同步机制
- Element UI Form 每行显示多列,即多个 el-form-item
- AVL树、splay树(伸展树)和红黑树比较
- [SCOI 2010] 股票交易
- 杂项: EasyUI | jQuery EasyUI
- 2.2.3 修改JSX代码
- AWS S3 对象存储服务
- Entity Framework 的懒加载、预先加载、显示加载
- Android网络编程随想录(四)