Educational Codeforces Round 131总结

比赛地址

比赛情况

排名:99 / 23733
AC:4 / 6

题目总结

A

看一下有几个1,0个就0,4个就2,否则1

B

d=2 显然最优。

于是从 1 到 n 判断,如果此数还未输出就输出它和它的2倍和它的2倍的2倍,直到大于 n,标记为出现过,然后遍历下一个数。

C

双指针

首先把每个人擅长的工作都交给它做,那么每个人完成时间都可以化为数轴 [1,m] 上的一个点。

然后跑双指针,一个从 1 开始从小往大,一个从 m 开始从大往小,寻找当前完成时间最短和最长的工人,最短+2,最长-1,然后继续跑,直到两个指针交汇就是答案

D

对于当前 ibi,我们可以求出 ai 的范围:

  1. bi=0,则 ai[i+1,n]
  2. bi=0 不成立,则 ai[ibi+1+1,ibi]

把所有 ai 的区间求出来后,就转化为经典问题,每个数只能在区间中取,每个数只能出现一次。

然后贪心解决,把所有区间按左端点排序,从 1 到 n 遍历,逐个确定。

如果当前区间左端点大于当前要确定的数,右端点加入小根堆。

每次从优先队列中取出堆顶,就是这个数对应的答案。

posted @   zhangtingxi  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示