您的位置:首页 > 其它

UVa 1149 Bin Packing 【贪心】

2015-03-24 22:41 405 查看
题意:给定n个物品的重量l[i],背包的容量为w,同时要求每个背包最多装两个物品,求至少要多少个背包才能装下所有的物品

和之前做的独木舟上的旅行一样,注意一下格式就好了

#include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
#define mod=1e9+7;
using namespace std;

typedef long long LL;
const int maxn=100005;
int a[maxn];

int main()

{

int ncase,i,j,w,n,sum;
cin>>ncase;
int t=0;
while(ncase--)
{
t++;
sum=0;
memset(a,0,sizeof(a));
cin>>n>>w;
for(i=1;i<=n;i++) cin>>a[i];

sort(a+1,a+n+1);
i=1;
j=n;
while(i<=j)
{
if(a[i]+a[j]<=w&&i!=j)
{
i++;
j--;
sum++;
}
else
{
j--;
sum++;
}
}
if(t!=1) printf("\n");
printf("%d\n",sum);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: