[POJ3639]Exchange Rates(dp)
来源:互联网 发布:范德堡大学 知乎 编辑:程序博客网 时间:2024/06/06 09:05
题目描述
传送门
题意:起初你有1000元加币,给出每天1美元到加币的兑换率,每兑换一次要付3%手续费,并且所有钱舍去美分后面的部分。问n天之后你最多有多少加币?
题解
这题的dp是非常简单的,设f(i,0/1)表示第i天最多有多少美元/加币,然后从f(i-1,?)递推就可以了。
不过刚开始还是因为精度的问题卡了一会,因为必须在比较大小的时候就砍位,否则会出错。
代码
#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define N 1005int n;double rate,f[N][2];void clear(){ memset(f,0,sizeof(f));}double cut(double x){ int a=floor(x*100); return (double)a/(100.0);}int main(){ while (~scanf("%d",&n)) { if (!n) break; clear(); f[0][0]=0,f[0][1]=1000.00; for (int i=1;i<=n;++i) { scanf("%lf",&rate); f[i][0]=max(f[i-1][0],cut(f[i-1][1]*0.97/rate)); f[i][1]=max(f[i-1][1],cut(f[i-1][0]*0.97*rate)); } printf("%0.2lf\n",f[n][1]); }}
总结
①有处理小数的题一定要关注精度问题!如果无缘无故地wa了一定要往这方面考虑!
0 0
- [POJ3639]Exchange Rates(dp)
- OpenJudge_P2421 Exchange Rates(DP)
- POJ3639(简单DP)
- Exchange Rates
- PKU 3639 Exchange Rates
- 2504: Exchange Rates
- POJ-3639(动态规划,精度处理)(Exchange Rates)
- pku3639 Exchange Rates (动态规划)
- Openjudge 3420 Exchange Rates double
- 百练 3420: Exchange Rates
- POJ 3639 Exchange Rates 再想想
- hdu 1903 Exchange Rates(动态规划)
- poj 3903-Stock Exchange最大上升子序(dp)
- Flash动画学习指南二:帧频(Frame rates)
- UESTC_1558 Charitable Exchange 弦断树优化dp
- 802.11 Supported Basic Rates
- Cisco AP Data Rates
- Data rates using BLE
- java多线程总结
- U表示该常数用无符号整型方式存储
- Linux设备驱动(二)---初级驱动
- 封装:内存镜像文件(MemoryMappedFile)封装,一维二维三维定点访问
- sql server 2008 可视化操作中更改表属性报错(不允许保存更改,您所做的更改要求删除并重新创建以下表 的解决办法)
- [POJ3639]Exchange Rates(dp)
- mac 小说阅读器
- 关于XCODE8控制台打印大段无用代码的解决办法
- hibernate基础,各种小知识,慢慢添加
- C语言中memset函数详解
- 求乘法逆元
- man手册,系统函数,库函数
- 简单使用Smarty
- c# asp.net 在vs2012上网站调试成功,发布后点击按钮后出现:“/”应用程序中的服务器错误。未将对象引用