UVA 1149 Bin Packing(贪心)
2017-09-08 16:30
357 查看
题目链接
题意
给出n个长度l1 l2 … ln,一个m。每一个容器长度为m,可以放一个或者两个元素(两者长度之和<=m),询问为了装下这n个元素需要多少个容器(最少)
解决
思路是排序后从小到大开始选,那一个大的之后看能不能再拿一个最小的,如果能拿最小的就等价于这两个能放在同一个容器中,如果不能拿就说明最大的这个只能单独占据一个容器。1. 从小到大排序
2. 从大的开始选,每次让ans+1,能选小的就选一个小的
#include<bits/stdc++.h> using namespace std; const int maxn=1e5+5; int main() { int cases,n,m,num[maxn]; scanf("%d",&cases); while(cases--) { scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&num[i]); sort(num,num+n); int left=0,right=n-1; int ans=0; while(left<=right) { if(num[left]+num[right]<=m){ left++; right--; ans++; continue; } else{ right--; ans++; } } printf("%d\n",ans); if(cases) cout<<endl; } }
相关文章推荐
- 【uva】1149-Bin Packing(贪心 + STL )
- Uva1149 Bin Packing【贪心】
- UVA 1149 Bin Packing 装箱(贪心)
- UVA 1149 Bin Packing 装箱 经典贪心 (SWERC 2005)
- UVA 1149 Bin Packing 装箱(简单贪心)
- UVa - 1149 Bin Packing( 经典背包 贪心 )
- UVa 1149 - Bin Packing [贪心]
- UVA - 1149 Bin Packing 贪心水题
- UVa 1149 - Bin Packing [贪心]
- UVA 1149 - Bin Packing ( 贪心 + 二分 & STL )
- UVa 1149 Bin Packing 【贪心】
- UVA-1149 Bin Packing (贪心)
- UVa 1149 Bin Packing (二分 + 贪心)
- uva 1149 Bin Packing(贪心)
- UVa 1149 (贪心) Bin Packing
- UVA 1149 bin packing (贪心)
- UVA 1149 Bin Packing 二分+贪心
- 习题8-1 UVA - 1149 Bin Packing 装箱 (滑动窗口)
- uva 1149:Bin Packing(贪心)
- UVA 1149 Bin Packing