首页 > Windows开发 > 详细

AcWing 532. 货币系统

时间:2019-12-08 01:06:26      阅读:130      评论:0      收藏:0      [点我收藏+]
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 25010;
int n;
int a[N];
bool f[N];
int main() {
    int T;
    cin >> T;
    while (T -- ) {
        cin >> n;
        for (int i = 0; i < n; i ++ )
            cin >> a[i];
        sort(a, a + n);//货币从小到大排序
        int m = a[n - 1];//取最后一个货币 ,也就是最大体积
        memset(f, 0, sizeof f);
        f[0] = true;
        int k = 0;
        for (int i = 0; i < n; i ++ ) {
            if (!f[a[i]])//从小开始看,如果没有拼凑方案 
                k ++ ;
            for (int j = a[i]; j <= m; j ++ )
                f[j] += f[j - a[i]];
        }

        cout << k << endl;
    }

    return 0;
}

 

 

AcWing 532. 货币系统

原文:https://www.cnblogs.com/QingyuYYYYY/p/12003832.html

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