题意:对于 \(n\) 个人,每个人有一个分数,现在要把所有人分成四等,使得:

  • 前三类都有人

  • 前三类中,任意类的人数不大于其他类的人数的两倍

  • 不能有 \(i\) 的分数比 \(j\) 高但是所属的等级不如 \(j\)

  • 定义 \(d_i\) 是第 \(i\) 类的最低分和第 \(i+1\) 类的最高分的差,求最优的方案,按照 \(d_1\rightarrow d_2\rightarrow d_3\) 为第一、第二、第三关键字排序

首先转化题意,我们考虑枚举一等和二等的人数 \(i\) 和 \(j\),枚举的同时加入两倍的限制,得到当前的 \(d_1\) 和 \(d_2\)。

然后我们考虑找到一种方式,得到“剩余 \(k\) 个人,要求三等奖的人数不小于 \(\dfrac{i}{2}\) 和 \(\dfrac{j}{2}\),不大于 \(2i\) 和 \(2j\) 的最优的三等奖人数”。也就是 \(O(1)\) 找到一个最优的决策点使得当前点和前一个点的差最大,且当前点的下标在一个确定的范围 \([l,r]\) 内。

首先,这是一个 \(\text{rmq}\) 问题,考虑 \(\text{st}\) 表,把所有的 \({a(i)-a(i-1),i}\) 加入 \(\text{st}\) 表中,然后 \(O(n\log n)\sim O(1)\) \(\text{rmq}\)求出 \([l,r]\) 范围内使 \(a_i-a_{i-1}\) 最小的 \(i\),从而进行转移。这是比较暴力的做法。 \(\text{Best Code}\) \(\text{by irkstepanov}\)

但是我们可以有更优秀的做法。我们发现 \([l,r]\) 的上下界是单调的,也就是随着 \(j\) 的增长,下界和上界都在单调的增长。这就提示我们使用单调队列优化。

我们可以把所有在界中的决策点丢进单调队列,每次随着j的增长,单调队列头部 \(\text{pop}\) 尾部 \(\text{push}\),也可以 \(O(1)\) 的找到最优的决策点。\(\text{Best Code}\) \(\text{by LHiC}\)

CF873E - Awards For Contestants的更多相关文章

  1. Codeforces 873E Awards For Contestants ST表

    原文链接https://www.cnblogs.com/zhouzhendong/p/9255885.html 题目传送门 - CF873E 题意 现在要给 $n(n\leq 3000)$ 个学生颁奖 ...

  2. Educational Codeforces Round 30

    Educational Codeforces Round 30  A. Chores 把最大的换掉 view code #pragma GCC optimize("O3") #pr ...

  3. 关注经典:CSS Awards 获奖网站作品赏析《第一季》

    每天都有很多新的网站推出,其中不乏一些设计极其优秀的作品.这个系列的文章,我为大家挑选了2012年赢得 CSS Awards 大奖的50个最佳网站.这些鼓舞人心的网站作品代表了网页设计的最高水平,相信 ...

  4. POJ 3140 Contestants Division 树形DP

    Contestants Division   Description In the new ACM-ICPC Regional Contest, a special monitoring and su ...

  5. Sicily 1299 Academy Awards (map + vector)集装箱

    链接:http://soj.me/show_problem.php?pid=1299&cid= Description Selected from 3,850 teams from 1,329 ...

  6. Gym 100952F&&2015 HIAST Collegiate Programming Contest F. Contestants Ranking【BFS+STL乱搞(map+vector)+优先队列】

    F. Contestants Ranking time limit per test:1 second memory limit per test:24 megabytes input:standar ...

  7. Awards and Certifications @EMC

    1. Awards 1.1 Jun. 12, 2012, Accurev Migration 1.2 Oct. 16, 2012, Deliver Inyo RTM to Rockies 1.3 Ju ...

  8. Unity Awards 2018最佳资源

    好的工具与资源,将帮助你的开发,达到事办功倍,今天我们将为大家介绍荣获Unity Awards 2018最佳资源的获奖作品. 最佳艺术工具:Aura - Volumetric Lighting Aur ...

  9. POJ 3140.Contestants Division 基础树形dp

    Contestants Division Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 10704   Accepted:  ...

  10. Bossies 2015: The Best of Open Source Software Awards

    InfoWorld editors and contributors pick the top open source software for data centers, clouds, devel ...

随机推荐

  1. Cannot resolve module 'net' in stompjs

    解决方案1 stompjs 不支持客户端环境下运行需要作为开发依赖安装 npm install stompjs --save 解决方案2 webpack.config.js 增加这段 resolve: ...

  2. 云数据库FinOps实战复盘

    历时三个多月的HBase成本优化项目按照预期交付了,HBase云数据库月度成本下降了32.5%,超出预期达成目标. 我们对本次HBase成本优化项目进行深度复盘,并进一步尝试总结云数据库的FinOps ...

  3. ChatGPT 会开源吗?

    最近,我被一款叫做 ChatGPT 的人工智能(AI)聊天机器人,刷屏了.网上有人说它是搜索引擎杀手,还有人说它将取代程序员... 最后,我还是没扛住铺天盖地的赞美,跑去注册了个账号,抱着调侃&quo ...

  4. MyBatis详解(二)

    前言 本篇幅是继 MyBatis详解(一)的下半部分. MyBatis执行Sql的流程分析 [1]基于前面已经将XML文件进行build解析了并且返回了SqlSessionFactory [1.1]那 ...

  5. .netcore项目docker化,以及docker之间通信

    简言: 最近刚完成公司的新系统,系统使用的是微服务架构,由于领导说要将服务docker化.下面将我的研究结果分享出来,如若有错误的地方,还请各位多多指点. 目录: 什么是docker? 使用docke ...

  6. m3u8文件后缀jpg,png等处理方法及视频合并

    处理 # 解析伪装成png的ts def resolve_ts(src_path, dst_path): ''' 如果m3u8返回的ts文件地址为 https://p1.eckwai.com/ufil ...

  7. 使用 Helm 安装 MQTT 服务器-EMQX

    EMQX ️ Info: 使用 EMQX 通过 Helm3 在 Kubernetes 上部署 EMQX 4.0 集群 | EMQ emqx/deploy/charts/emqx at main-v4. ...

  8. Go+beego接入OSS上传

    路由 f, h, err := c.GetFile("uploadFile") if err != nil { logx.Error("getfile err " ...

  9. Java运算的精度和溢出问题

    double和float的0.1问题 代码如下 public class demo2 { public static void main(String[] args) { float f=0.1f; ...

  10. [Untiy]贪吃蛇大作战(三)——商店界面

    游戏商店界面: 实际的效果图如下: 要实现这个滑动,首先我们需要,一个内容显示区域,一个内容滚动区域,如下图: 其中ItemContent挂载的组件如下: 红框标注的地方是右方的滑动块. 然后Item ...