首页 > 其他 > 详细

Sicily 2014. Dairy Queen

时间:2019-09-10 18:55:46      阅读:79      评论:0      收藏:0      [点我收藏+]

题目::

用一套给定的硬币,求有多少种组合方式构成给定的数额,(不同指的是数量不同)

思路;

动态规划:dp[i]表示构成 i 金额的组合方法;

初始化:dp[i]=0;(无可构成硬币)

转移方程:对于每种硬币(x),dp[x]++;当硬币面值大于时,dp[i]+=dp[i-x];

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 #define ld long double
 5 const int maxn=305;
 6 int dp[maxn];
 7 int main()
 8 {
 9     memset(dp,0,sizeof(dp));
10     int n,c,a;
11     scanf("%d%d",&n,&c);
12     for(int i=1;i<=c;i++)
13     {
14         scanf("%d",&a);
15         dp[a]+=1;
16         for(int k=a+1;k<=n;k++)
17         {
18             dp[k]+=dp[k-a];
19         }
20     }
21     printf("%d\n",dp[n]);
22     return 0;
23 }

 

Sicily 2014. Dairy Queen

原文:https://www.cnblogs.com/sj-gank/p/11499049.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!