• 解题报告:hdu1284 钱币兑换问题


    2017-09-03 19:03:06

    writer:pprp

    状态定义:

    dp[i][j] = x 代表的是 用前i 中硬币构造 j 美分的方法数目;

    初始化:

    dp[0][0] = 1

    状态转移:

    dp[i][j] = dp[i-1][j] + dp[i-1][j-val[i]]

    代码如下:

    /*
    @theme:换零钱问题 hdu 1284
    @writer:pprp
    @begin:17:10
    @end:18:53
    @declare:1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法
    @error:
    @date:2017/9/3
    */
    
    #include <bits/stdc++.h>
    
    using namespace std;
    
    int dp[4][40000];
    
    int main()
    {
        freopen("in.txt","r",stdin);
        int N;
        memset(dp,0,sizeof(dp));
    
        dp[0][0] = 1;
    
        for(int i = 1; i <= 3; i++)
        {
            for(int j = 0 ; j <= 32770; j++)
            {
                dp[i][j] =  dp[i-1][j] + dp[i][j-i];
            }
        }
        while(cin >> N)
        {
            cout << dp[3][N] << endl;
        }
    
        return 0;
    }
  • 相关阅读:
    1434. Buses in Vasyuki 夜
    SAP
    目标
    组合数
    KM算法模板
    网络流
    CodeForces 43E
    B. Unsorting Array codeforces 127
    Colorful Rainbows 127
    C. Anagram codeforces
  • 原文地址:https://www.cnblogs.com/pprp/p/7470523.html
Copyright © 2020-2023  润新知