T5
2025-05-08 16:04:20
发布于:浙江
#include <iostream>
#include <vector>
using namespace std;
int n, k;
vector<int> scores;
vector<int> current;
// 递归函数,用于生成所有可能的抽奖组合
void backtrack(int step, int sum) {
if (step == n) {
if (sum == k) {
for (int i = 0; i < n; ++i) {
if (i > 0) cout << " ";
cout << current[i];
}
cout << endl;
}
return;
}
for (int i = 0; i < n; ++i) {
current.push_back(i + 1);
backtrack(step + 1, sum + scores[i]);
current.pop_back();
}
}
int main() {
cin >> n >> k;
scores.resize(n);
for (int i = 0; i < n; ++i) {
cin >> scores[i];
}
backtrack(0, 0);
return 0;
}
这里空空如也
有帮助,赞一个