Uva1149
每个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的更多相关文章
- 8-1 binpacking uva1149(贪心)
题意:给定N个物品的重量Li 背包的容量M 同时要求每个背包最多装两个物品 求至少要多少个背包才能装下所有物品 简单贪心 注意输出: #include<bits/stdc++.h> u ...
- UVA-1149 Bin Packing (贪心)
题目大意:给定n个物品的重量,无限个容量为m的箱子,每个箱子最多装两个物品,要把所有的物品都装下,最少需要多少个箱子. 题目分析:贪心策略:每次将最重和最轻的两个物品放到一个箱子里,如果装不下,则将最 ...
- 【题解】「UVA1149」装箱 Bin Packing
做法显然:贪心,但是怎么贪? 首先从大到小或从小到大排序,窝这次是从大到小排,这样更容易理解(从小到大更方变) 然后设置两个变量 front 和 after 作为前指针和后指针. 循环判断: 当前后两 ...
- UVa 1149 装箱
https://vjudge.net/problem/UVA-1149 题意:给定N个物品的重量和背包的容量,同时要求每个背包最多装两个物品.求至少需要的背包数. 思路:很简单的贪心.每次将最轻的和最 ...
随机推荐
- android SDK manager 无法获取更新版本列表【转载】
http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息: http://developer.android.c ...
- ACM学习历程—Hihocoder [Offer收割]编程练习赛1
比赛链接:http://hihocoder.com/contest/hihointerview3/problem/1 大概有一个月没怎么打算法了.这一场的前一场BC,也打的不是很好.本来Div1的A和 ...
- 上海-北京间通过Azure Storage的RA-GRS类型的存储账户进行快速复制
Azure的Blob存储分成多种类型,目前主要有: 其中RA-GRS可以在上海-北京两个数据中心间同步数据.并且,在第二个数据中心可以只读的方式读取这个存储账户中的Blob内容. 虽然GRS采用的是准 ...
- JAVAWeb SSH框架 上传文件,如2007的EXCEL
下面的代码是上传EXCEL的代码,其实,就是在上传文件到服务器,代码都差不多,只是接收的文件的类型改一下即可. 1.jsp 用的是struts2 标签 代码: <s:file name=&quo ...
- javaIO 流分析总结
Java中的流,可以从不同的角度进行分类. 按照数据流的方向不同可以分为:输入流和输出流. 按照处理数据单位不同可以分为:字节流和字符流. 按照实现功能不同可以分为:节点流和处理流. 输出流: 输入流 ...
- /* font-awesome-4.7.0的应用*/
<!DOCTYPE html> /* font-awesome-4.7.0的应用*/ <html lang="en"> <head> <m ...
- shell 自动删除n天前备份
Linux自动删除n天前备份Linux是一个很能自动产生文件的系统,日志.邮件.备份等.因此需要设置让系统定时清理一些不需要的文件.语句写法: find 对应目录 -mtime +天数 -na ...
- MySql中的视图的概念及应用
视图的基本概念 视图是从一个或几个基本表(或者视图)导出的表.它与基本表不同,是一个虚表. 数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.所以基本表中的数据发生变化, ...
- 24、嵌合体序列Chimeras
转载:http://www.cnblogs.com/xudongliang/p/6497465.html 嵌合体序列:由来自两条或者多条模板链的序列组成,示意图如下: 在PCR反应中,在延伸阶段,由于 ...
- 第四周作业-视频学习、教材作业wireshark
教材总结与作业 总结 网络嗅探技术定义:网络嗅探(sniff)是一种黑客常用的窃听技术,(1)利用计算机的网络接口截获目的地为其他计算机的数据报文,(2)监听数据流中所包含的用户账户密码或私密通信等. ...