您的位置:首页 > 其它

最优装载方案

2016-03-15 14:34 351 查看
//贪心策略,采取最轻的集装箱先装的方法
#include<iostream>
#include<algorithm>
using namespace std;
struct load{
int num;//箱子的编号
int w;//箱子的重量
};
struct load a[100];
int book[100];//标记箱子是否被选
int c,n,ans;
int cmp(load a,load b)
{
if(a.w<b.w)
return 1;
return 0;
}
int greed()
{
int i;
for( i=1;i<=n&&a[i].w<=c;i++)
{
book[a[i].num]=1;
c-=a[i].w;
}
return i-1;
}
int main()
{
cin>>c>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].w;
a[i].num=i;
}
sort(a,a+n,cmp);
ans=greed();
if(ans)
{
cout<<ans<<endl;
for(int i=1;i<=n;i++)
{
if(book[i])
cout<<i<<" ";
}
}

else
cout<<"No answer"<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: