P5020 [NOIP2018 提高组] 货币系统

#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 105;
const int A = 25005;
int a[N];
bool dp[A];
int main()
{
int t; scanf("%d", &t);
while (t--) {
int n; scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
sort(a + 1, a + n + 1);
for (int i = 1; i <= a[n]; i++) dp[i] = false;
dp[0] = true;
int ans = n;
for (int i = 1; i <= n; i++) {
if (dp[a[i]]) {
ans--; continue;
}
for (int j = a[i]; j <= a[n]; j++)
dp[j] |= dp[j - a[i]];
}
printf("%d\n", ans);
}
return 0;
}
posted @   RonChen  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示