uva 1149 Bin Packing 装箱 (二分+贪心)
来源:互联网 发布:软件总体方案设计评审 编辑:程序博客网 时间:2024/05/29 02:34
这题应该很容易就想到贪心,然后通过观察数据量就知道了如果用暴力会超时,所以这里用二分,博主懒,用了STL的upper_bound,(输出时格式注意下,博主第一次WA)不多说,上代码,不懂的看注释吧
//// main.cpp// B - 装箱//// Created by wenhan on 2017/8/14.// Copyright © 2017年 wenhan. All rights reserved.//#include<iostream>#include<cstdio>#include<vector>#include<algorithm>int a[100000+5];using namespace std;int main() { vector<int> me; vector<int>::iterator it; int t; cin>>t; while(t--) { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) scanf("%d",&a[i]);//现将数据读进来存a中 sort(a+1, a+n+1);//a排序,之后从大到小贪心 int s=0;//计数器 for(int i=n;i>=1;i--) { it=upper_bound(me.begin(), me.end(), m-a[i]);//寻找大于m-a[i]的位置,也就是说物体越小找到的位置越后,切记不可用lower_bound,原因自己想一下吧 if(it!=me.begin())//存在比m-a[i]大的 { me.erase(it-1);//从vector里删去找到位置的前一项,因为之前都放的下 } else//找不到则将数据插入头部,计数器+1 { me.insert(it, a[i]); s++; } } printf("%d\n",s); if(t!=0)//注意格式 printf("\n"); me.clear();//一定要及时清理 } // insert code here... //std::cout << "Hello, World!\n"; return 0;}
阅读全文
0 0
- 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 装箱 经典贪心 (SWERC 2005)
- 【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 贪心水题
- 1149 - Bin Packing(贪心)
- UVA 10162 Bin Packing(贪心)
- UVA1149:Bin Packing(装箱)
- 习题8-1 UVA - 1149 Bin Packing 装箱 (滑动窗口)
- Uva - 1149 - Bin Packing
- UVA 1149 - Bin Packing
- 在code中尽量不要直接使用READ_ONCE和WRITE_ONCE。反而应该用atomic_read和atomic_set 替换
- case when函数 case when then when then else end
- Android Context大致结构
- Javascript数组
- 数组的一些相关操作
- uva 1149 Bin Packing 装箱 (二分+贪心)
- Elasticsearch 集群优化篇
- [leetcode] Add to List 403. Frog Jump
- lxml.etree._ElementUnicodeResult 转为字符
- 正则表达式
- BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 bfs
- 从微服务开始(二):容器与微服务
- hdu 1695 GCD(莫比乌斯反演)
- Android实现图标右上角红色小圆球提示气泡(不需要导入第三方)