解题思路:01 背包, f[j] 表示和为j的方案数, 当j = 0 时, 方案为一个数字都不选,此时方案数为1
注意事项:
参考代码:
#include<iostream> #include<algorithm> using namespace std; const int N = 1e3 + 10; int f[N],a[N]; int main() { int t, n; cin >> n >> t; for(int i = 1; i <= n; i ++) cin >> a[i]; for(int i = 0; i <= n; i ++){ for(int j = t; j >= a[i]; j --) { if(j) f[j] += f[j - a[i]]; else f[j] = 1; } } cout << f[t]; return 0; }
0.0分
1 人评分
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:1237 |
C语言程序设计教程(第三版)课后习题9.1 (C++代码)浏览:563 |
点我有惊喜!你懂得!浏览:1395 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:545 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:986 |
钟神赛车 (C语言代码)浏览:877 |
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:493 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:541 |
十->二进制转换 (C语言代码)浏览:1291 |
人见人爱A+B (C语言代码)浏览:628 |