UVA 357- Let Me Count The Ways

来源:互联网 发布:免费好用的mac清理软件 编辑:程序博客网 时间:2024/05/29 19:50

题意:
换硬币
思路:
跟uva674
http://blog.csdn.net/conatic/article/details/50850516没什么不同 , 改了long long 即可
代码:

#include <iostream>#include<cstdio>#include<cstring>#include <algorithm>using namespace std;#define N 30005#define ll long longint a[5] = { 1, 5, 10, 25, 50 };ll dp[N][7];ll DP(int i, int j){    if (j == 0)        return dp[i][j] = 1;    if (dp[i][j] != -1)        return dp[i][j];    dp[i][j] = 0;    for (int k = 0; i - k*a[j] >= 0; k++)    {        dp[i][j] += DP(i - k*a[j], j - 1);    }    return dp[i][j];}int main(){    int n;    memset(dp, -1, sizeof(dp));    while (~scanf("%d", &n))    {        ll ans = DP(n, 4);        if (ans == 1)            printf("There is only 1 way to produce %d cents change.\n", n);        else            printf("There are %lld ways to produce %d cents change.\n", ans, n);    }    return 0;}
0 0
原创粉丝点击