FOJ/FZU/FZOJ 1550Monetary System【记忆化搜索】

原创 2016年04月11日 22:24:14

Problem 1500 Monetary System

Accept: 415    Submit: 1261
Time Limit: 1000 mSec    Memory Limit : 32768 KB

Problem Description

In Byteland they have a very strange monetary system.

Each Bytelandian gold coin has an integer number written on it. A coin n can be exchanged in a bank into three coins: n/2, n/3 and n/4. But these numbers are all rounded down (the banks have to make a profit).

You can also sell Bytelandian coins for American dollars. The exchange rate is 1:1. But you can not buy Bytelandian coins.

You have one gold coin. What is the maximum amount of American dollars you can get for it?

Input

The input will contain several test cases (not more than 10). Each testcase is a single line with a number n, 0 <= n <= 1000000000. It is the number written on your coin.

Output

For each test case output a single line, containing the maximum amount of American dollars you can make.

Sample Input

12
2

Sample Output

13
2

Source

FOJ月赛-2007年5月 

题目大意:给你一个特殊的硬币,这个硬币可以换三种硬币:n/2,n/3,n/4,问怎么换能够得到最大硬币价值,翻译的可能有些浅显,我们就样例1来说:
n=12 当n只换一次为: 6 4 3的时候就比价值12大1为13,当然6也可以继续向下兑换,但是因为我们是举例,就不向下分了。

分析:搜索。因为N比较大的时候,暴搜一定会超时,这个时候我们就要想优化的方法。


我们知道,如果输入的n比较大的时候,在深搜的过程中记录一些可能会重复的值就可以省略掉很多很多不需要的操作,因为数组开的大小有限,所以我们只对10^6以下的数据进行记忆化,其他数据我们还是暴力处理。


爆搜输入999999999的时候跑的时间就要取决于你的电脑cpu强大与否了..................... 但是经过处理一些重复数据之后,是用很快的速度就能跑出来的。


需要注意的点:数据要开long long int,千万记住FZU要使用I64d,不能用lld。。。。。。。在wa了一次之后改数据为long long int的时候竟然TLE...........后来才知道要交I64d......好坑爹................【论我们学校oj和别的学校oj后台处理方式不同的坑爹性....................】

AC代码:

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define ll __int64
ll output;
ll dp[1000000];//只处理10^6以下的数据记忆化,其实数据越小,越需要记忆化,反而值越大,越不需要记忆化,10^6足够了。
ll dfs(ll now)
{
    if(now==0)return 0;
    if(now<=1000000)
    {
        if(dp[now]!=0)return dp[now];
        else
        {
            dp[now]=max(now,dfs(now/2)+dfs(now/3)+dfs(now/4));
            return dp[now];
        }
    }
    else
    {
        return max(now,dfs(now/2)+dfs(now/3)+dfs(now/4));
    }
}
int main()
{
    ll n;
    while(~scanf("%I64d",&n))
    {
        memset(dp,0,sizeof(dp));
        output=dfs(n);
        printf("%I64d\n",output);
    }
}













版权声明:0.0小白有写的不好不对的地方请指出~

FZOJ刷题顺序

FZOJ刷题顺序 一、练习题(按照学习进度排序) 二、练习题(按照AC量排序) 三、往年NOIP原题(按照AC量排序) 四、往年NOIP原题(按照年份排序) 注:数据截止2016年1月24日...
  • XNDXFSZX
  • XNDXFSZX
  • 2016年01月24日 18:09
  • 2417

Foj 2173 Nostop

题目如下: Description M国有N个城市,H条单向的道路,AekdyCoin从编号为1的城市出发,每经过一条道路要花一个单位的时间。假设他出发的时刻为0,他需要在K时刻到达编号为N的城...
  • qq_35620616
  • qq_35620616
  • 2017年04月21日 23:20
  • 228

FOJ 题目分类

简单题:1001,1002,1008,1010,1054,1055,1056,1058,1059,1065,1068,1075,1077,1083,1085,1095,1097,1113,1116,1...
  • q3498233
  • q3498233
  • 2009年07月30日 00:06
  • 1990

HDOJ1078 记忆化搜索入门题 有详细的记忆化搜索模板程序

FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth...
  • computer_user
  • computer_user
  • 2017年08月11日 10:18
  • 202

FOJ 1001 Duplicate Pair (位图算法)

FOJ1001 位图算法 Problem 1001 Duplicate Pair Accept: 5374    Submit: 25613 Time Limit: 1000 mSec    ...
  • shouwang666666
  • shouwang666666
  • 2017年04月10日 19:36
  • 242

FZU ACM 题目分类(转自某位大神的博客)

题目于http://acm.fzu.edu.cn简单题:1001,1002,1008,1010,1054,1055,1056,1058,1059,1065,1068,1075 1077,1083...
  • qq_32866009
  • qq_32866009
  • 2016年03月06日 21:07
  • 864

FOJ FZU 2112 Tickets【欧拉通路】

Problem 2112 Tickets Accept: 424    Submit: 731 Time Limit: 3000 mSec    Memory Limit : 32768 KB...
  • mengxiang000000
  • mengxiang000000
  • 2016年04月01日 21:46
  • 263

记忆化搜索简介

记忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。 一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。 更重要的是搜索还可以剪枝,可能剪去...
  • ILECY
  • ILECY
  • 2016年03月12日 20:03
  • 2524

FZU 2156(记忆化搜索)

Problem 2156 Climb Stairs Accept: 153    Submit: 397 Time Limit: 1000 mSec    Memory Limit : 327...
  • qq_24489717
  • qq_24489717
  • 2016年04月27日 16:33
  • 225

FZU 2092 记忆化搜索 || BFS

BFS: #include "queue" #include "iostream" #include "algorithm" using namespace std; int dir[5][2]=...
  • u011932355
  • u011932355
  • 2014年05月04日 09:29
  • 468
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:FOJ/FZU/FZOJ 1550Monetary System【记忆化搜索】
举报原因:
原因补充:

(最多只允许输入30个字)