一个不靠谱的题解(?)
2026-03-28 15:27:58
发布于:广东
7阅读
0回复
0点赞
不废话,先上代码:(贪心代码,时间复杂度O(n))
#include<bits/stdc++.h>
using namespace std;
int main(){
int c,n;//输入!!!
cin>>c>>n;
int k[n];
for(int i = 0;i<n;i++){
cin>>k[i];
}
sort(k,k+n);//排序(建议别手动排)
int sum=0;//初始化计数器
for(int i = 0;i<n;i++){
if(c<0){//判断船有没有满
cout<<sum-1;//由于船已经满了,所以sum要减一(你觉得呢)
return 0;//结束程序
}
sum++;
c-=k[i];//sum加一,C要减少
}
cout<<sum;//由于船没有满,所以就不用减一了
return 0;
}
思路分析(重点!!!)
1,输入C,n,数组(废话)
2,排序(贪心必备)
3,循环计数(计算装的宝物)(从小到大,应为多装小的可以装更多)
4,输出(……)
注意(!!!):
如果因为船装不下了而结束程序,输出要减一,因为船已经超载了!!!
这里空空如也







有帮助,赞一个