首先对物品按重量从小到大排序排序。

因为每个背包最多装两个物品,所以直觉上是最轻的和最重的放一起最节省空间。

考虑最轻的物品i和最重的物品j,如果ij可以放在一个包里那就放在一起。

否则的话,j只能自己单独放在一个包里,因为最轻的都不行,其他物品就更不可能和j放在一起了。

如果j可以和多个物品放在一起,那么j和最轻的i放一起,剩下的一定能和除j外最重的放一起。

 #include <cstdio>
#include <algorithm>
using namespace std; const int maxn = + ;
int a[maxn]; int main()
{
//freopen("in.txt", "r", stdin); int T; scanf("%d", &T);
for(int kase = ; kase < T; kase++)
{
if(kase) puts("");
int n, l;
scanf("%d%d", &n, &l);
for(int i = ; i < n; i++) scanf("%d", &a[i]);
sort(a, a + n);
int head = , rear = n - , cnt = ;
while(head <= rear)
{
cnt++;
if(head == rear) head++;
else if(a[head] + a[rear] <= l) { head++; rear--; }
else rear--;
}
printf("%d\n", cnt);
} return ;
}

代码君

UVa 1149 (贪心) Bin Packing的更多相关文章

  1. 【习题 8-1 UVA - 1149】Bin Packing

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每个背包只能装两个东西. 而且每个东西都要被装进去. 那么我们随意考虑某个物品.(不必要求顺序 这个物品肯定要放进某个背包里面的. ...

  2. UVa 102 - Ecological Bin Packing(规律,统计)

    题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...

  3. UVa - 102 - Ecological Bin Packing

    Background Bin packing, or the placement of objects of certain weights into different bins subject t ...

  4. Bin Packing

    Bin Packing 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/F 题目: A set of  ...

  5. Vector Bin Packing 华为讲座笔记

    Vector bin packing:first fit / best fit / grasp 成本:性价比 (先验) 设计评价函数: evaluation function:cosine simil ...

  6. uva 1149:Bin Packing(贪心)

    题意:给定N物品的重量,背包容量M,一个背包最多放两个东西.问至少多少个背包. 思路:贪心,最大的和最小的放.如果这样都不行,那最大的一定孤独终生.否则,相伴而行. 代码: #include < ...

  7. UVA 1149 Bin Packing 二分+贪心

    A set of n 1-dimensional items have to be packed in identical bins. All bins have exactly the samele ...

  8. UVa 1149 Bin Packing 【贪心】

    题意:给定n个物品的重量l[i],背包的容量为w,同时要求每个背包最多装两个物品,求至少要多少个背包才能装下所有的物品 和之前做的独木舟上的旅行一样,注意一下格式就好了 #include<ios ...

  9. UVA 1149 Bin Packing 装箱(贪心)

    每次选最大的物品和最小的物品放一起,如果放不下,大物体孤独终生,否则相伴而行... 答案变得更优是因为两个物品一起放了,最大的物品是最难匹配的,如果和最小的都放不下的话,和其它匹配也一定放不下了. # ...

随机推荐

  1. HTTP状态码一览表(HTTP Status Code)

    copy from:http://www.189works.com/article-43064-1.html 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 100 ( ...

  2. POJ 1468

    #include <iostream> #define MAXN 5005 using namespace std; struct node { int b_x; int b_y; int ...

  3. (转)价值240万的photoshop中文教程,错过了后悔都来不及 (吹得好响)

      PS抠图方法 一.魔术棒法——最直观的方法 适用范围:图像和背景色色差明显,背景色单一,图像边界清晰. 方法意图:通过删除背景色来获取图像. 方法缺陷:对散乱的毛发没有用. 使用方法:1.点击“魔 ...

  4. IEEE 802.3 Ethernet

    Introduction Ethernet 是过去30年以来最为成功的局域网(local area networking)技术. 1. First widely used LAN technology ...

  5. Codeforces Round #335 (Div. 2) D. Lazy Student 贪心

    D. Lazy Student   Student Vladislav came to his programming exam completely unprepared as usual. He ...

  6. java+内存分配及变量存储位置的区别[转]

    原文来自:http://blog.csdn.net/rj042/article/details/6871030#comments Java内存分配与管理是Java的核心技术之一,之前我们曾介绍过Jav ...

  7. 凌乱的yyy

    题目背景 快noip了,yyy很紧张! 题目描述 现在各大oj上有n个比赛,每个比赛的开始.结束的时间点是知道的. yyy认为,参加越多的比赛,noip就能考的越好(假的) 所以,他想知道他最多能参加 ...

  8. Core Animation2-CABasicAnimation

    CABasicAnimation是CAPropertyAnimation的子类,使用它可以实现一些基本的动画效果,它可以让CALayer的某个属性从某个值渐变到另一个值.下面就用CABasicAnim ...

  9. MyBatis学习总结_05_实现关联表查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  10. DWR与AJAX

    DWR与AJAX的微妙关系 2015-08-14 10:20 447人阅读 评论(0) 收藏 举报 本文章已收录于:   // ' + obj.name + "  "; html ...