每个bin最多只能放两个,所以最佳的贪心策略是从大的开始放,如果有空间放第二个,尽量放最大的。

 #include <bits/stdc++.h>

 using namespace std;

 const int maxn =  + ;

 int t;

 int n,l;

 int a[maxn];

 int b[maxn];

 int flag[maxn];

 void solve(){
int cnt = ;
memset(flag, , sizeof(flag));
for(int i = ; i <= n; ++i){
if(flag[i]){
continue;
} else {
++cnt;
flag[i] = ;
int temp = l - a[i];
int loc = upper_bound(b+, b++n, temp) - b;
if(loc == +n) loc = n;
for(int j = loc; j >= ; --j){
if(!flag[n-j+] && b[j] <= temp){
flag[n-j+] = ;
break;
}
}
}
}
printf("%d\n",cnt);
if(t) printf("\n");
} bool cmp(int a, int b){
return a > b;
} int main(){
scanf("%d",&t);
while(t--){
scanf("%d%d",&n,&l);
for(int i = ; i <= n; ++i){
scanf("%d",&a[i]);
b[i] = a[i];
}
if(l == ){
printf("0\n");
continue;
}
sort(a+, a++n, cmp);
sort(b+, b++n);
solve();
}
}

Uva1149的更多相关文章

  1. 8-1 binpacking uva1149(贪心)

    题意:给定N个物品的重量Li  背包的容量M 同时要求每个背包最多装两个物品 求至少要多少个背包才能装下所有物品 简单贪心  注意输出: #include<bits/stdc++.h> u ...

  2. UVA-1149 Bin Packing (贪心)

    题目大意:给定n个物品的重量,无限个容量为m的箱子,每个箱子最多装两个物品,要把所有的物品都装下,最少需要多少个箱子. 题目分析:贪心策略:每次将最重和最轻的两个物品放到一个箱子里,如果装不下,则将最 ...

  3. 【题解】「UVA1149」装箱 Bin Packing

    做法显然:贪心,但是怎么贪? 首先从大到小或从小到大排序,窝这次是从大到小排,这样更容易理解(从小到大更方变) 然后设置两个变量 front 和 after 作为前指针和后指针. 循环判断: 当前后两 ...

  4. UVa 1149 装箱

    https://vjudge.net/problem/UVA-1149 题意:给定N个物品的重量和背包的容量,同时要求每个背包最多装两个物品.求至少需要的背包数. 思路:很简单的贪心.每次将最轻的和最 ...

随机推荐

  1. HihoCoder1338 A Game(记忆化搜索)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi and Little Ho are playing a game. There is an integ ...

  2. jQuery DataTables 使用手册(精简版)

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/5182940.html 前排提醒,这个插件能不用就不用,那么多好的插件等着你,为什么要用它呢?就算用easyui的 ...

  3. InvalidOperationException: out of sync

    C#中不能在集合的迭代中修改集合数据

  4. 记一次编译tensorflow-gpu爬过的坑

    废话不多说,先说最终成功的版本:系统=>centos7 ,cuda=>10.0 ,cudnn=>7.5 ,nccl=>源码编译, tensorflow=>最新版本源码编译 ...

  5. mysqladmin命令用法

    mysqladmin 工具的使用格式: mysqladmin [option] command [command option] command ...... option 选项: -c  numbe ...

  6. Framework配置错误

    转自:http://blog.csdn.net/ked/article/details/25052955 VS2012命令提示符无法使用的解决方法 打开VS2012命令提示符时报错“ERROR: Ca ...

  7. springMVC绑定json参数之二(2.2.1)

    二.springmvc 接收不同格式的json字符串 2.扫盲完了继续测试springmvc 接收不同格式的json字符串 1).格式一:json简单数组对象 前台两种传递方式: 方式一(需要拼接js ...

  8. sql 根据年份、月份查询数据

    CREATE TABLE [dbo].[T_UserAccess]( ,) NOT NULL, [UserId] [int] NULL, [UserType] [int] NULL, ) NULL, ...

  9. python 基础 列表 小例子

    存主机ip到列表 host_list=[] netip='192.168.1' for hostip in range(1,254): ip = netip +str(hostip) host_lis ...

  10. IPSec方案部署(多业务场景)

    技术点详解—IPSec方案部署 通过前面几期的介绍可以发现IPSec所涉及的参数很多,在具体方案部署过程中有许多灵活选择的地方,本期专栏就专门对IPSec在几种典型环境中的方案部署进行介绍. 一.   ...