返回题解分享
讨论 / 题解分享/ 帖子详情

纸币问题 - 题解

#include<bits/stdc++.h>
using namespace std;

int a[1010];
int f[10010];

int main(){
    int n, cost;
    cin>>n>>cost;
    for(int i = 1; i <= n; i++){
        cin>>a[i];
        f[a[i]] = 1;
    }

    for(int i = 1; i <= cost; i++){
        if(f[i]) continue;
        int mi = cost;
        for(int j = 1; j < n; j++){
            if(a[j] > i) continue;
            mi = min(f[i - a[j]] + 1 , mi);
        }
        f[i] = mi;
    }
    cout<<f[cost];
}
0 回复 0 转发 0 喜欢 6 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!