zoukankan      html  css  js  c++  java
  • 兑换零钱 (dp)

    兑换零钱

     

    题目描述

    现有N元钱,兑换成小额的零钱,有多少种换法?币值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。
    (由于结果可能会很大,输出Mod 10^9 + 7的结果)

    输入

    输入描述:

    第一行输入一个整数T,代表有T组数据

    接下来T行,每行输入1个数N,N = 100表示1元钱。(1 <= N <= 100000)

    输出描述:

    输出Mod 10^9 + 7的结果
    示例1

    输入

    2
    5
    4
    

    输出

    4
    3
    

    备注:

    5分钱兑换为零钱,有以下4种换法:
    1、5个1分
    2、1个2分3个1分
    3、2个2分1个1分
    4、1个5分


     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 #include<algorithm>
     6 #include<map>
     7 #include<vector>
     8 #include<set>
     9 using namespace std;
    10 #define ll long long
    11 const int mod=1e9+7;
    12 const int inf=1e9+7;
    13 const int maxn=100000+5;
    14 int money[13]={1,2,5,10,20,50,100,200,500,1000,2000,5000,10000};
    15 int dp[maxn];
    16 int main()
    17 {
    18     ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    19     memset(dp,0,sizeof(dp));
    20     dp[0]=1;
    21     for(int i=0;i<13;i++)
    22         for(int j=money[i];j<=maxn;j++)
    23                 dp[j]=(dp[j]+dp[j-money[i]])%mod;      
    24     int T;
    25     cin>>T;
    26     int n;
    27     while(T--)
    28     {
    29         cin>>n;
    30         cout<<dp[n]<<endl;
    31     }
    32     return 0;
    33 }


    大佬见笑,,
  • 相关阅读:
    装饰器和迭代器
    闭包函数
    函数对象
    Python函数
    函数的基本使用
    文件处理
    量化策略
    Android--生命周期
    算法转AI平台工程师记录-0
    python3.6安装
  • 原文地址:https://www.cnblogs.com/xwl3109377858/p/10933166.html
Copyright © 2011-2022 走看看