当前位置:网站首页>2020icpc亚洲区域赛(济南)M题Cook Pancakes(小根堆的应用)
2020icpc亚洲区域赛(济南)M题Cook Pancakes(小根堆的应用)
2022-08-03 17:46:00 【ZaneBobo】
一.题意:
你有一个锅,锅的容量是k个饼,就是可以同时煎k个饼的一面,你有n个饼需要煎双面,饼面煎熟需要1小时,问你使用容量为k的锅去煎n个饼至少需要几小时。
二.用小根堆的目的(思路):
小根堆里面存0/1/2 0代表1面没煎过,1代表煎过一面,2代表这个饼已经煎完了。
优先煎煎过次数较少的饼
使得每次剩下两面都没煎的饼尽量少(这样的话剩余的同类面(在一个饼上,不能同时煎的面)就会尽量少)这样的话就能够充分利用锅,可以尽可能的一次煎多个饼的面。
三.代码:
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
const int N=100;
priority_queue<int,vector<int>,greater<int>> heap;//小根堆形式
int main()
{
int n,k;
cin>>n>>k;
if(n<=k)//如果这样的话,如果进入下面的小根堆循环,就会是1
//因为如果容量大于个数的话,两个同类面会同时煎
{
cout<<2<<endl;
return 0;
}
for(int i=1;i<=n;i++)
{
heap.push(0);
}
int h=0;
while(heap.top()<2)
{
int t=k;
while(t--)
{
heap.push(heap.top()+1);
heap.pop();
}
h++;
}
cout<<h<<endl;
}我那年的集训队面试题,真是怀念qwq。
边栏推荐
- EasyNTS上云网关断电重启后设备离线是什么原因?
- 为什么我用了Redis之后,系统的性能却没有提升
- CC2530_ZigBee+HUAWEI CLOUD IOT: Design your own cold chain acquisition system
- Atomic Wallet已支持TRC20-USDT
- 深度学习跟踪DLT (deep learning tracker)
- Crack: WebKitX ActiveX and WebKitX VHX
- 【用户运营】用这4个最佳客户服务策略,减少客户流失率
- Is OnePlus Ace worth buying?Use strength to interpret the power of performance
- JS 字符串转 GBK 编码超精简实现
- 新“妖股”13个交易日暴涨320倍,市值3100亿美元超阿里
猜你喜欢
随机推荐
云图说丨初识华为云微服务引擎CSE
软件测试<用例篇>
gcc的学习及 版本太低如何在conda环境下重新进行安装
Web3 安全风险令人生畏?应该如何应对?
被误解的 MVC 和被神化的 MVVM(一)
什么是鉴权?一篇文章带你了解postman的多种方式
如何成为优秀的产品运营?
域名抢注“卷”到了表情包?ENS逆势上涨的新推力
并查集模板及思想
Map和Set
高效的组织信息共享知识库是一种宝贵的资源
How to install and start VNC remote desktop service on cloud GPU?
CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
uniapp 切换 history 路由模
数据万象内容审核 — 共建安全互联网,专项开展“清朗”直播整治行动
ThreeJS简介
003_Kubernetes核心技术
@resource和@autowired的区别
技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris
六、用户身份认证









