CF873E - Awards For Contestants
题意:对于 \(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的更多相关文章
- Codeforces 873E Awards For Contestants ST表
原文链接https://www.cnblogs.com/zhouzhendong/p/9255885.html 题目传送门 - CF873E 题意 现在要给 $n(n\leq 3000)$ 个学生颁奖 ...
- Educational Codeforces Round 30
Educational Codeforces Round 30 A. Chores 把最大的换掉 view code #pragma GCC optimize("O3") #pr ...
- 关注经典:CSS Awards 获奖网站作品赏析《第一季》
每天都有很多新的网站推出,其中不乏一些设计极其优秀的作品.这个系列的文章,我为大家挑选了2012年赢得 CSS Awards 大奖的50个最佳网站.这些鼓舞人心的网站作品代表了网页设计的最高水平,相信 ...
- POJ 3140 Contestants Division 树形DP
Contestants Division Description In the new ACM-ICPC Regional Contest, a special monitoring and su ...
- Sicily 1299 Academy Awards (map + vector)集装箱
链接:http://soj.me/show_problem.php?pid=1299&cid= Description Selected from 3,850 teams from 1,329 ...
- 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 ...
- 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 ...
- Unity Awards 2018最佳资源
好的工具与资源,将帮助你的开发,达到事办功倍,今天我们将为大家介绍荣获Unity Awards 2018最佳资源的获奖作品. 最佳艺术工具:Aura - Volumetric Lighting Aur ...
- POJ 3140.Contestants Division 基础树形dp
Contestants Division Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10704 Accepted: ...
- Bossies 2015: The Best of Open Source Software Awards
InfoWorld editors and contributors pick the top open source software for data centers, clouds, devel ...
随机推荐
- 【Java框架】SSM-Spring总结:IOC、DI、AOP、JDBC、事务管理、实际案例
〇.概述 1.常用资料 2.组成 一.控制反转与依赖注入 (一)Spring概述 1.介绍 以IOC和AOP为内核的框架 通过IOC实现控制,使用spring创建对象,与DI描述同一个概念 DI是对象 ...
- ChatGPT 会开源吗?
最近,我被一款叫做 ChatGPT 的人工智能(AI)聊天机器人,刷屏了.网上有人说它是搜索引擎杀手,还有人说它将取代程序员... 最后,我还是没扛住铺天盖地的赞美,跑去注册了个账号,抱着调侃&quo ...
- day01-家具网购项目说明
家具网购项目说明 1.项目前置技术 Java基础 正则表达式 Mysql JDBC 数据库连接池技术 满汉楼项目(包括框架图) JavaWeb 2.相关说明 这里先使用原生的servlet/过滤器,后 ...
- Python3.7.3环境搭建
Python3.7.3安装(Win10) 到2019年初,Python3已经更新到了Python3.7.3,Python有两个大版本Python2和Python3,Python3是现在和未来的主流. ...
- 事件 jQuery类库、Bootstrap页面框架
目录 jQuery查找标签 基本选择器 组合选择器 层级选择器 属性选择器 基本筛选器 表单筛选器 筛选器方法 链式的本质(jQuery一行代码走天下) 操作标签 class操作 位置操作 文本操作 ...
- Jmeter 逻辑控制器之吞吐量控制器(Throughput Controller)
吞吐量控制器(Throughput Controller)用来控制其下元件的执行次数,并无控制吞吐量的功能,想要控制吞吐量可以用Constant Throughput Timer,吞吐量控制器有两种模 ...
- uniapp微信小程序 原生底部导航栏
在pages.json文件中写 "tabBar": { "color": "#333333", "selectedColor&q ...
- c++中编码protobuf repeated string
参考:http://www.cppblog.com/API/archive/2014/12/09/209070.aspx proto文件 addressbook.proto syntax = &quo ...
- libcamera 简介
libcamera 简介 libcamera 是一个开源的多媒体库,用于在 Linux 操作系统上支持多种摄像头硬件的访问,libcamera 是一个用户空间库,可用于开发基于摄像头的应用程序,如相机 ...
- Redis RDB 与AOF
参考书籍<Redis设计与实现> 一丶为什么redis需要持久化 redis 作为一个内存数据库,如果不想办法将存储在内存中的数据,保存到磁盘中,那么一旦服务器进程退出,那么redis数据 ...