第一份题解!!!
2025-12-21 15:52:06
发布于:北京
31阅读
0回复
0点赞
四级的题给的答案有问题(我改了):
上面这代码不能全AC,
改后的可以:(下面)
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N];
int n, k;
int main() {
// 输入n和k
cin >> n >> k;
for (int i = 1; i <= n; i++) {
cin >> a[i]; // 输入每个宝箱的价值
}
// 对宝箱的价值进行排序
sort(a + 1, a + n + 1); // 当前宝箱向左扩展
int ans = 0; // 初始化答案
// 遍历每个宝箱作为区间的右边界
for (int i = 1; i <= n; i++) {
int sum = 0; // 当前区间的总价值
// 从当前宝箱向左扩展
for (int j = i; j >= 1; j--) {
if (a[i] - a[j] <= k) { // 如果满足条件
sum += a[j]; // 累计总价值
} else {
break; // 如果不满足条件,停止扩展
}
}
// 更新最大总价值
ans = max(ans, sum);
}
// 输出最大总价值
cout << ans << "\n";
}
这里空空如也




有帮助,赞一个