当前位置:网站首页>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。
边栏推荐
猜你喜欢
随机推荐
vant自动上传图片/文件
Web3 安全风险令人生畏?应该如何应对?
CC2530_ZigBee+HUAWEI CLOUD IOT: Design your own cold chain acquisition system
【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十一)
【时间的比较】
es6新增-Generator(异步编程的解决方案2)
【刻意练习观后管】刻意练习
PMP备考敏捷考题的五点应对策略
WPF implements column chart
TiFlash 计算层概览
How to install and start VNC remote desktop service on cloud GPU?
开篇-开启全新的.NET现代应用开发体验
2022爱分析· 银行数字化厂商全景报告
如何成为优秀的产品运营?
JS string to GBK encoding ultra-reduced implementation
云GPU如何安装和启动VNC远程桌面服务?
软件测试<用例篇>
MySQL database account management and optimization
leetcode-每日一题899. 有序队列(思维题)
使用o.execute_sql 查询很很很小的表, 要7/8秒钟, 这个怎么解决