题解
2026-05-05 15:19:04
发布于:湖南
2阅读
0回复
0点赞
题意
海盗船有最大载重量 k,一共有 n 件古董,每件古董重量不同。
思路
要装数量最多,就必须优先装最轻的古董,这是典型的贪心策略:
1.输入载重量 k、古董数量 n,以及所有古董重量;
2.将所有古董按重量从小到大排序;
3.从最轻的开始一件件装船,能装就装,装不下就停止;
4.统计一共装了多少件,输出答案。
完整代码
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k;
cin >> k >> n;
const int N = 1e6 + 5;
int a[N];
for (int i = 1; i <= n; i++) cin >> a[i];
sort(a+1,a+1+n);
int sum = 0;
for (int i = 1; i <= n; i++) {
if (k >= a[i]) {
k -= a[i];
sum ++;
}
else break;
}
cout << sum;
return 0;
}

这里空空如也








有帮助,赞一个