Files
python/GESP/Mkx/ZC_1.cpp
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

46 lines
864 B
C++

#include <bits/stdc++.h>
using namespace std;
const int N = 15;
const int INF = 0x3f3f3f3f;
int a[N];
int res = INF; // 结果
/*
12 21 31 40 49 58 69 79 90 101
15
*/
// m是剩余多少公里 sum已经花了多少钱
void dfs(int m, int sum) {
// 剪枝
if (sum >= res)
return;
if (m == 0) {
res = min(res, sum); // 最少钱数的路径取得胜利
return;
}
// 安排这一步他能采用哪种走法
for (int i = 1; i <= min(m, 10); i++)
dfs(m - i, sum + a[i]);
}
int solve() {
for (int m = 1; m <= 10; m++) {
res = INF;
// 递归
dfs(m, 0); // m是剩余多少公里 sum已经花了多少钱
cout << res << " ";
}
}
/*
12 20 30 40 25 60 70 80 90 11
21
*/
int main() {
for (int i = 1; i <= 10; i++)
cin >> a[i];
int m;
cin >> m;
solve();
return 0;
}