货币系统
题目 货币系统
思路分析
货币使用次数不限 完全背包
它这个不同种类的货币面值可能相同让我怀疑是多重背包 (把所有物品记录一下 一样的在s[i]里累加数量) 但与前面使用次数不限矛盾 所以他这个情况其实完全可以忽略了 都包含在上一类价值一样的选法里去了
还是画个图 v种货币 n=v N元钱 m=N 属性count 差不多了
代码实现
#include<bits/stdc++.h>
using namespace std;
const int N=10010;
long long dp[N];
int n,m;
int main()
{
cin>>n>>m;
dp[0]=1;
for(int i=1;i<=n;i++){
int v; cin>>v;
for(int j=v;j<=m;j++)
dp[j]=dp[j]+dp[j-v];
}
cout<<dp[m];
return 0;
}
💬 评论