Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
143007 | jiayou | 简单背包问题 | C++ | 解答错误 | 40 | 0 MS | 252 KB | 891 | 2024-04-11 14:26:38 |
#include <iostream> using namespace std; int n, item[1000],ans[1000],id; // item数组存储物品的重量 int s; bool search(int itemNum, int space) { if (space == 0) return true; // 终止条件 if (space < 0 || itemNum == 0) return false; // 终止条件 if (search(itemNum - 1,space -item[itemNum])) { // 装物品itemNum,尝试装物品itemNum-1,成功返回true ans[++id] = item[itemNum]; return true; } if (search(itemNum - 1,space)) { // 不装物品itemNum,尝试装物品itemNum-1,成功返回true return true; } return false; } int main() { cin >> s >> n; for (int i = 1; i <= n; i++) cin >> item[i]; if (!search(n, s)) // 返回false代表没有找到合适的方案 cout << "not found"; else{ for(int i = 1;i <= id;i++){ cout << ans[i] << endl; } } return 0; }