背景

又是一道水题

描述

在某个神秘的星球上有一种货币,它有一种奇怪的兑换规则

你有且仅有一枚面值为n的金币,你可以去银行进行兑换,也可以不兑换

如果去银行兑换,兑换的规则是这样的:用面值为a的金币去兑换可以换到a/2,a/3,a/4这三枚硬币(如果

是小数则截尾取整),你可以兑换多次

读入n

输出你最后最多能拥有的钱数w

每个测试点中有T组数据

格式

输入格式

一个数T表示该点的测试数据组数(1=<T<=20 )

下面跟着T行,每行一个整数n(0 <= n <= 1000000000 )

输出格式

输出T行(一一对应)

每行一个整数就是你最后最多拥有的钱数w

样例1

样例输入1[复制]

2
12
2

样例输出1[复制]

13
2

限制

各个测试点3s

提示

小心数据较大,但是不需要高精度

来源

源于spoj;

思路:记忆化搜索;

按照正常的递推是:dp[i]=max(i,dp[i/2]+dp[i/3]+dp[i/2]);

由于给的范围很大,所以不能开那么大的数组。

所以我们记忆化搜索就行:dp[i]=max(i,dp[i/2]+dp[i/3]+dp[i/2]);

 1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<stdlib.h>
5 #include<string.h>
6 #include<math.h>
7 #include<queue>
8 #include<map>
9 using namespace std;
10 typedef long long LL;
11 map<LL,LL>my;
12 LL N=1;
13 LL maxx[1000000];
14 LL dfs(LL n);
15 int main(void)
16 {
17 int i,j,k;
18 scanf("%d",&k);
19 LL n,m;
20 while(k--)
21 {
22 scanf("%lld",&n);
23 printf("%lld\n",dfs(n));
24 }
25 return 0;
26 }
27 LL dfs(LL n)
28 {
29 if(my[n]==0)
30 {
31 my[n]=N++;
32 }
33 else return maxx[my[n]];
34 maxx[my[n]]=n;
35 if(n<=4)
36 {
37 return n;
38 }
39 maxx[my[n]]=max(maxx[my[n]],dfs(n/2)+dfs(n/3)+dfs(n/4));
40 return maxx[my[n]];
41 }

P1599 货币的更多相关文章

  1. JS 将数字转化成为货币格式

    最近由于项目的需要需要将数字format成货币格式,自己搞了半天效果不是很好,博客园有篇问题很好,再次转载记录一下 http://www.cnblogs.com/mingmingruyuedlut/a ...

  2. Java中货币格式化

    private final static NumberFormat CURRENCY_FORMAT = NumberFormat.getCurrencyInstance(Locale.CHINA); ...

  3. Analyzer中进行货币转换

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. POI2005Bank notes银行货币

    Description Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我 ...

  5. Magento显示多货币,Magento 多货币设置

    System - Configuration - Currency Setup 在右边Currency Options里的Allowed currencies勾选, 然后 System - Manag ...

  6. double四舍五入,商品金额大小写转换,设置货币的小数位数跟格式输出,进制转化

      1:计算double值四舍五入的方法 对小数数值进行四舍五入,首先应该确认保留小数位, 如果数值的小数精度大于保留小数位,那么开始四舍五入计算.四舍五入的方法非常简单,在所有要丢失精度的小数位中加 ...

  7. ACM/ICPC 之 SPFA-兑换货币(POJ1860)

    //水题-SPFA解法 //套汇是指兑换货币后能使本金上升 //给定本金货币编号,货币间的汇率和手续费,求能否套汇成功 //Time:16Ms Memory:200K #include<iost ...

  8. SAP 金额在表中的存储及货币转换因子

    场景:一个接口出问题了,SAP通过RFC将SO数据传输到Java系统,错误的将100日元传为1.00日元. 其实查看SAP透明表发现,表中存储的的确是1.00,是前台真实数据的1/100,开发接口时没 ...

  9. DEV 财务货币格式单元格

    在用友金蝶等财务软件中,经常需要输入货币类型的数据, 那么这种输入框要如何制作呢? 扩展DataGridView 的功能  出自在天空飞翔博客 http://www.cnblogs.com/micha ...

随机推荐

  1. 内存管理malloc 2

    malloc可以在函数指针内使用.#include <stdio.h> #include <stdlib.h> char * get_string() { //char s[] ...

  2. 学习java的第十天

    一.今日收获 1.java完全学习手册第二章2.9程序流程控制中的选择结构与顺序结构的例题 2.观看哔哩哔哩上的教学视频 二.今日问题 1.例题的问题不大,需要注意大小写,新的语句记忆不牢 2.哔哩哔 ...

  3. A Child's History of England.12

    Dunstan, Abbot of Glastonbury Abbey, was one of the most sagacious of these monks. He was an ingenio ...

  4. acute, adapt

    acute In Euclidean [欧几里得] geometry, an angle is the figure [图形] formed by two rays, called the sides ...

  5. day05 连表查询与子查询

    day05 连表查询与子查询 昨日内容回顾 表关系之一对一 换位思考之后得出两边都是不可以 要么是没有关系,要么是一对一 一对一的表关系外键虽然建在哪个都可以,但是建议建在查询频率多的表上 # 外键其 ...

  6. Spark(十七)【SparkStreaming需求练习】

    目录 一.环境准备 1.pom文件 2.bean 3.工具类 JDBCUtils Properties工具类 3.创建BaseApp 需求一:动态添加黑名单 需求二:广告点击量实时统计 需求三:最近一 ...

  7. nodejs-Express框架

    JavaScript 标准参考教程(alpha) 草稿二:Node.js Express框架 GitHub TOP Express框架 来自<JavaScript 标准参考教程(alpha)&g ...

  8. 答应我,这次必须搞懂!痛点难点Promise。(小点心async/await,基于Promise的更优方案)

    Promise 出现的原因 在 Promise 出现以前,我们处理一个异步网络请求,大概是这样: // 请求 代表 一个异步网络调用. // 请求结果 代表网络请求的响应. 请求1(function( ...

  9. ALitum技巧

    创建异型焊盘的方法 SCH与PCB同步修改后元器件乱跑的解决方法 Altium 在PCB重新编号更新到SCH原理图的方法 同步问题 其他技巧: 当前层亮色,其他层灰色切换:SHIFT+S

  10. 规范——Java后端开发规范

    Java后端开发规范 一.技术栈规约 二.命名规范 三.Java代码规范(注释规范.异常与日志.代码逻辑规范) 四.Mybatis与SQL规范 五.结果检查(单元测试及代码扫描) 六.安全规范 一.技 ...