问题描述
有一批共 nn 个集装箱要装上艘载重量为 cc 的轮船,其中集装箱 ii 的重量为 wiwi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船。
输入格式
第一行有 2 个正整数 nn 和 cc。 nn 是集装箱数,cc 是轮船的载重量。接下来的 1 行中有 nn 个正整数,表示集装箱的重量。
输出格式
一行,1 个整数,即最大装载重量。
样例一
input
5 10 7 2 6 5 4
output
10
数据范围与约定
时间限制: 1s1s
内存限制: 256MB
时间原因......以后补上题解,凑合着看......
我才不会说我不会
1 #include<bits/stdc++.h> 2 using namespace std; 3 int maxx; 4 int ans; 5 int n,c; 6 int sz[10000]; 7 void ss(int i,int k=0){ 8 if(maxx>c) return ; 9 if(k==i+1) { 10 ans=max(ans,maxx); 11 return ; 12 } 13 if(maxx+sz[k]<=c){ 14 maxx+=sz[k]; 15 ss(i,k+1); 16 maxx-=sz[k]; 17 } 18 ss(i,k+1); 19 } 20 int main(){ 21 cin>>n>>c; 22 for(int i=1;i<=n;i++){ 23 cin>>sz[i]; 24 } 25 sort(sz+1,sz+n+1); 26 ss(n); 27 cout<<ans; 28 return 0; 29 }