Educational Codeforces Round 131总结
本文搬运自本人初中博客园博客,若图片加载不出来,可到原文查看:https://www.cnblogs.com/zhangtingxi/p/16461488.html
比赛地址
比赛情况
排名:99 / 23733
AC:4 / 6
题目总结
A
看一下有几个1,0个就0,4个就2,否则1
B
显然最优。
于是从 1 到 判断,如果此数还未输出就输出它和它的2倍和它的2倍的2倍,直到大于 ,标记为出现过,然后遍历下一个数。
C
双指针
首先把每个人擅长的工作都交给它做,那么每个人完成时间都可以化为数轴 上的一个点。
然后跑双指针,一个从 1 开始从小往大,一个从 开始从大往小,寻找当前完成时间最短和最长的工人,最短+2,最长-1,然后继续跑,直到两个指针交汇就是答案
D
对于当前 和 ,我们可以求出 的范围:
- 若 ,则
- 若 不成立,则
把所有 的区间求出来后,就转化为经典问题,每个数只能在区间中取,每个数只能出现一次。
然后贪心解决,把所有区间按左端点排序,从 1 到 遍历,逐个确定。
如果当前区间左端点大于当前要确定的数,右端点加入小根堆。
每次从优先队列中取出堆顶,就是这个数对应的答案。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 zhangxixi的博客!