SOJ1711 题解
题意
给定 \(n\) 个在数轴的区间 \([l_1,r_1],[l_2,r_2],...,[l_n,r_n]\)。
定义 \(I(x)\) 为所有包含 \([x,x+1]\) 的区间形成的集合,即 \(I(x)=\{k \mid [x,x+1] \subseteq [l_k,r_k] \}\)。
称一个数列 \(S\) 是好的当且仅当存在一个整数 \(x\) 满足 \(I(x)\) 中的元素从小到大排序后等于 \(S\) 且 \(S\) 的长度非 \(0\)。
给定 \(k\),求字典序第 \(k\) 小的好的数列。如果好数列的数量不足 \(k\) 个,输出 -1。
\(1 \le n \le 3 \times 10^5,1 \le k \le 10^{18},0 \le l_i < r_i \le 10^9\)。
题解
考试的题目。然而我并不会……
很羡慕 positive1 大师,1h 就切掉了,而我想了 2h 仍然毫无头绪……是套路见少了,还是思维质量不行,或是二者兼有?
显然可以先离散化,那么就是 \(2n\) 个小区间。则 \(k\) 一定小于 \(2n\)。
求字典序第 \(k\) 小,则枚举每一位放什么。也就是要求包含 \(i\) 的不同 \(I(x)\) 的数量。
那么先对 \(I(x)\) 离散化。这个可以用哈希解决。
设当前枚举到第 \(i\) 个区间,则要求 \(l_i\) 到 \(r_i\) 间不同颜色的数量。同时,\(i\) 之前的区间对 \(i\) 有影响:必须包含之前选的区间,不包含之前不选的区间。
此时我们发现问题转化为了区间数颜色与区间覆盖。看数据范围,不能用线段树与 \(\text{bitset}\),然后就不会做了……(有人用 \(\text{ODT}\) 做,应该能卡?不过我也不会)
实际上,有一个很好的性质:对于任意两个颜色相等的位置 \(x,y\),一定有 \(\forall i,([l_i,r_i] \subseteq [x,y]) \vee ([x,y] \subseteq [l_i,r_i]) \vee ([l_i,r_i] \cap [x,y]=\varnothing)=1\)(可能没有考虑边界情况)。读者自证不难。
那么一个区间若包含某种颜色 \(i\),则必然包含所有颜色为 \(i\) 的位置。于是只在第一个位置算颜色 \(i\) 的贡献。那么就容易用线段树维护了。
SOJ1711 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- 判断PC端与移动端跳转
var mobile_bs = { versions: function () { var u = navigator.userAgent; return { trid ...
- 【面试题】 用vue想要拿20k,面试题要这样回答(源码版)
总结给大家推荐一个实用面试题库 1.前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 2.前端技术导航大全 推荐:★★★★★ 地址:前端技术导航大全 ...
- java springboot+rabbitmq+websocket 订阅展示
记录工作 需要的依赖 <!--fastjson坐标--> <dependency> <groupId>com.alibaba</groupId> < ...
- 蓝牙mesh组网实践(mesh组网的评估与沁恒蓝牙芯片选型)
目录 沁恒的组网方式主要有2.4G私有协议组网和BLE mesh组网两大类.2.4G私有协议组网灵活性相对较高,对开发者的要求也相对较高.mesh组网本身有一系列规范,考虑到了可靠性.安全性.功能性等 ...
- vue3项目一些小坑
文章来自 https://mp.weixin.qq.com/s/nJsfOUNNKYQdvB9o9BXVVQ 1. Vue2.x 和 Vue3.x 生命周期方法的变化 文档地址:https://v3. ...
- SqlServer基礎
REVERSE(欄位) 反轉 CHARINDEX(篩選字符,欄位,[start]) 例:CHARINDEX('/',ProImage,13) 從13位查詢/所在索引 SUBSTRING(欄位,star ...
- vue 分页显示 引用Element框架
VUE组件 父页面-子组件-传值 单表查询图片上传: 注释为简单方法 图片显示方法: 红框处应该为地址+存图片的文件夹名 +当前图片的值 在vue中引用Element需要的步骤 1.在终端中输入网址 ...
- SpringMVC的学习day01
什么是SpringMVC 基于狂神说SpringMVC课程的学习 前面已经学习了spring.javaSE.javaweb.mybatis等知识,今天开始学习springMVC,是ssm框架的最后一个 ...
- websphere+IHS+plugin集群搭建
配置:wa1+was2 was1:Dmgr app01 oracle ihs was2:Dmgr app02 原理:通过Dmgr管理下面两个agent,再通过agent去间接控制运行在节点上的ser ...
- 《【转载】ChatGPT创始人,给我们上的8堂课》 回复
<[转载]ChatGPT创始人,给我们上的8堂课> https://tieba.baidu.com/p/8276644432