2018.10.08 NOIP模拟 序列(主席树)
传送门
T2防ak题?
其实也不是很难(考试时sb了)。
直接变形一下求出区间长度在[l2,r2][l2,r2][l2,r2]之间,中位数≤l1−1\le l1-1≤l1−1的区间数,和区间长度在[l2,r2][l2,r2][l2,r2]之间,中位数≤r1\le r1≤r1的区间数就行了。
继续变变形,一个区间的中位数如果≤k\le k≤k。
那么显然有:区间中≤k\le k≤k的数的个数≤\leq≤区间中>k>k>k的数的个数。
我们记smallismall_ismalli表示111$i$中比$k$小的数的个数,$big_i$表示$1$iii中比kkk大的数的个数。
那么就有:smallr−small−1≤bigr−bigl−1small_r-smal_{l-1}\leq big_r-big_{l-1}smallr−small−1≤bigr−bigl−1
移项后发现:smallr−bigr≤smalll−1−bigl−1small_r-big_r\leq small_{l-1}-big_{l-1}smallr−bigr≤smalll−1−bigl−1
然后就可以主席树做了。
代码
2018.10.08 NOIP模拟 序列(主席树)的更多相关文章
- 2018.10.08 NOIP模拟 栅栏(树状数组+rand)
传送门 今天的送分题. 首先考虑每次给要围上栅栏的矩阵里的整体加上1,如果栅栏被撤销就整体减1,最后比较两个点的值是否相同来进行判断. 然而这样的效果并不理想,很容易卡掉. 进一步思考,我们第iii次 ...
- 2018.10.02 NOIP模拟 序列维护(线段树+广义欧拉定理)
传送门 一道比较好的线段树. 考试时线性筛打错了于是弃疗. 60分暴力中有20分的快速幂乘爆了于是最后40分滚粗. 正解并不难想. 每次区间加打懒标记就行了. 区间查询要用到广义欧拉定理. 我们会发现 ...
- 2018.10.08 NOIP模拟 斐波那契(贪心+hash/map)
传送门 签到题. 显然是可以贪心分组的,也就是尽量跟当前的分成一组. 这时我们需要判断a[l]+a[r],a[l+1]+a[r]...a[r−1]+a[r]a[l]+a[r],a[l+1]+a[r]. ...
- 2018.10.16 NOIP模拟 长者(主席树+hash)
传送门 考试的时候开始sb的以为需要可持久化trietrietrie树,发现建树时空都是O(n2)O(n^2)O(n2)的. 然后发现由于每次只从原来的字符串改一个字符. 因此直接主席树维护区间has ...
- 2018.10.31 bzoj3339&&3585mex(主席树)
传送门 双倍经验 直接上主席树,每个叶节点维护这个值出现的最右区间,非叶子节点维护当前值域内所有最右区间的最小值. 查询的时候只用在以root[qr]root[qr]root[qr]为根的树上面二分. ...
- 2018.10.20 NOIP模拟 蛋糕(线段树+贪心/lis)
传送门 听说是最长反链衍生出的对偶定理就能秒了. 本蒟蒻直接用线段树模拟维护的. 对于第一维排序. 维护第二维的偏序关系可以借助线段树/树状数组维护逆序对的思想建立权值线段树贪心求解. 代码
- 2018.10.26 NOIP模拟 图(最小生成树+线段树合并)
传送门 首先最开始说的那个一条路径的权值就是想告诉你两个点之间的贡献就是瓶颈边的权值. 那么肯定要用最小生成树算法. 于是我考场上想了30min+30min+30min+的树形dpdpdp 发现转移是 ...
- 2018.10.20 NOIP模拟 巧克力(trie树+dfs序+树状数组)
传送门 好题啊. 考虑前面的32分,直接维护后缀trietrietrie树就行了. 如果#号不在字符串首? 只需要维护第一个#前面的字符串和最后一个#后面的字符串. 分开用两棵trie树并且维护第一棵 ...
- 2018.10.12 NOIP模拟 数据结构(线段树)
传送门 sb线段树题居然还卡常. 修改操作直接更新区间最小值和区间标记下传即可. 询问加起来最多5e65e65e6个数. 因此直接询问5e65e65e6次最小值就行了. 代码
随机推荐
- java的锁机制,synchronize与Lock比较
参考:https://blog.csdn.net/dahongwudi/article/details/78201082
- fb bin_debug下的swf不见了
fb清理了所选的项目,如果代码有错误,会自动删除bin_debug目录下的swf.这种情况,构建项目是无法自动生成swf的,只有将代码报错的地方修改正错了.选构建项目才会在bin_debug目录下生成 ...
- 6 unit3-文件操作&函数 review
文件处理相关 1.编码问题 (1)请说明python2 与python3中的默认编码是什么? py2默认ASCII码,py3默认的utf8 (2)为什么会出现中文乱码?你能列举出现乱码的情况有哪几种? ...
- spring浏览器国际化的原理
We will add two languages support to our application: English and German. Depending on the locale se ...
- 最短路径-Dijkstra算法(转载)
注意:以下代码 只是描述思路,没有测试过!! Dijkstra算法 1.定义概览 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始 ...
- NodeJS框架express的路径映射(路由)功能及控制
我 们知道Express是一个基于NodeJS的非常优秀的服务端开发框架,本篇CSSer将提供express框架的route和route control章节,route实现了客户端请求的URL的路径映 ...
- 使用css实现特殊标志或图形
1. 前言 由于图片占的空间比较大,且图片越多,越不好管理,所以有些时候,我们可以使用一些简单的标签样式来实现简单的图形标志来替代图片. 2. 实例展示: 三角形示例 示例代码: <style ...
- jsp清除缓存
好多代码都是: <% response.setHeader("Cache-Control", "no-store"); //HTTP 1.1 respon ...
- LeetCode包括main函数的答题框架(Java+Eclipse)
http://zhangnai.xin/2016/09/20/LeetCode-Framework/ 目录结构: LeetCode ——项目名称,方便Eclipse内置Git对代码进行管理和多终端同步 ...
- [leetcode]236. Lowest Common Ancestor of a Binary Tree 二叉树最低公共父节点
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...