题解
2025-06-06 14:29:30
发布于:广东
1阅读
0回复
0点赞
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int dp[2000000] = {0}; // dp[i]表示凑够i元所需的最少钞票数
for (int i = 1; i <= n; i++) {
dp[i] = dp[i - 1] + 1; // 先假设只用1元
if (i >= 5) {
dp[i] = min(dp[i], dp[i - 5] + 1); // 尝试用5元
}
if (i >= 11) {
dp[i] = min(dp[i], dp[i - 11] + 1); // 尝试用11元
}
}
cout << dp[n] << endl;
return 0;
}
这里空空如也
有帮助,赞一个