More Cowbell
来源:互联网 发布:台湾 香港 知乎 编辑:程序博客网 时间:2024/06/06 03:24
题目:
Kevin Sun wants to move his precious collection of n cowbells from Naperthrill to Exeter, where there is actually grass instead of corn. Before moving, he must pack his cowbells intok boxes of a fixed size. In order to keep his collection safe during transportation, he won't place more thantwo cowbells into a single box. Since Kevin wishes to minimize expenses, he is curious about the smallest size box he can use to pack his entire collection.
Kevin is a meticulous cowbell collector and knows that the size of his i-th (1 ≤ i ≤ n) cowbell is an integersi. In fact, he keeps his cowbells sorted by size, sosi - 1 ≤ si for anyi > 1. Also an expert packer, Kevin can fit one or two cowbells into a box of sizes if and only if the sum of their sizes does not exceeds. Given this information, help Kevin determine the smallests for which it is possible to put all of his cowbells intok boxes of size s.
题意:
有k个盒子,n个物品,数据保证k《n;2k《n,每个盒子里可以放1或2个物品,最后所有箱子用统一的大小。求最小的箱子大小。
分析:利用优先队列的性质贪心。现在优先队列(大根堆)里填上k个0代表k个盒子。之后n此操作,每次取出一个盒子,如果是空的放入一个物品,标记最大值,如果不空再加入一个没放的最小的,记录最大值。最后结果即为最大值。
题解:
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <vector>#include <map>#include <string>#include <cstring>#include <functional>#include <cmath>#include <cctype>#include <cfloat>#include <climits>#include <complex>#include <deque>#include <list>#include <set>#include <utility>using namespace std;int s[100010];priority_queue<int,vector<int>,greater<int> > pq;int main(){//freopen("in.txt","r",stdin);int n,k;scanf("%d %d",&n,&k);for(int i=1;i<=n;i++){scanf("%d",s+i);}int temp;int ans=0;for(int i=0;i<k;i++)pq.push(0);for(int i=n;i>0;i--){temp=pq.top();pq.pop();if(temp!=0)ans=max(ans,temp+s[i]);elsepq.push(s[i]);}while(!pq.empty()){temp=pq.top();pq.pop();}ans=max(ans,temp);printf("%d\n",ans);return 0;}
- More Cowbell
- More Cowbell
- codeforces604B More Cowbell
- codeforces 604B More Cowbell
- Codeforces 604B:More Cowbell
- codeforces B - More Cowbell (贪心)
- CodeForces 604B More Cowbell
- CodeForces 604B More Cowbell
- cf#334-B - More Cowbell-二分
- codeforces-604B More Cowbell(贪心)
- 【31.72%】【codeforces 604B】More Cowbell
- CodeForces 604 B.More Cowbell(贪心)
- Codeforces Round #334 (Div. 2) B. More Cowbell
- Codeforces Round #334 (Div. 2)-More Cowbell(贪心模拟)
- Codeforces Round #334 (604B) More Cowbell [贪心]
- Codeforces Round #334 (Div. 2) B. More Cowbell
- Codeforces Round #334 B. More Cowbell (二分 + 贪心)
- Codeforces Round #334 (Div. 2) B. More Cowbell
- 回调函数和函数指针
- tomcat如何启用Gzip对静态文件压缩
- BZOJ1189 [HNOI2007]紧急疏散evacuate
- [技术研究]Android插件化技术学习(Small插件框架)
- Java经典问题算法大全
- More Cowbell
- 带你走进多线程的世界(多线程实现方式)
- abap删除DN的BAPI:BAPI_OUTB_DELIVERY_CHANGE
- ELK收集Nginx日志,使用grok正则表达式(二)
- 巴蜀2830 数列
- android studio 生成release.aar
- 大型网站架构演化发展
- 自定义ImageView实现局部截图功能
- 平衡二叉树