贪心法:最优装载问题
这个问题比部分背包问题还简单,先拿轻的再拿重的可以保证最后物品装的最多。代码如下:
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 const int maxn=1005; 5 int n; 6 int w[maxn]; 7 int C; 8 int ans=0; 9 int main() 10 { 11 cin>>n; 12 for(int i=1;i<=n;i++) 13 cin>>w[i]; 14 sort(w+1,w+n+1); 15 cin>>C; 16 int tmp=0; 17 for(int i=1;i<=n;i++) 18 { 19 tmp+=w[i]; 20 if(tmp<=C) 21 ans++; 22 else 23 break; 24 } 25 cout<<ans<<endl; 26 return 0; 27 }