usaco-Money Systems

Posted rhythm-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了usaco-Money Systems相关的知识,希望对你有一定的参考价值。

题意:

给出几种硬币,求可用这几种硬币组合出价值为n的方案数。
分析:

设dp[i]表示组合出价值i的方案数,则,dp[i]=∑dp[i-val[j]]。

 

技术分享图片
#include <iostream>
#include <string>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
#define range(i,a,b) for(int i=a;i<=b;++i)
#define LL long long
#define rerange(i,a,b) for(int i=a;i>=b;--i)
#define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
using namespace std;
int n,v;
LL val[30],dp[10005];
void init(){
    cin>>v>>n;
    range(i,0,v-1)cin>>val[i];
    fill(dp,0);
    dp[0]=1;
}
void solve(){
    range(i,0,v-1)range(j,val[i],n)dp[j]+=dp[j-val[i]];
    cout<<dp[n]<<endl;
}
int main() {
    init();
    solve();
    return 0;
}
View Code

 


以上是关于usaco-Money Systems的主要内容,如果未能解决你的问题,请参考以下文章

[luoguP1474] 货币系统 Money Systems(背包)

ZPiE: Zero-knowledge Proofs in Embedded systems

Reducing Participation Costs via Incremental Verification for Ledger Systems学习笔记

unity5.1 particle systems怎么控制粒子速度

P2347 砝码称重 & P1474 货币系统 Money Systems

POJ1635 Subway tree systems ——(判断树的同构,树的最小表示法)