洛谷 P4559: bzoj 5319: [JSOI2018]军训列队
题目传送门:洛谷 P4559。
题意简述:
有 \(n\) 个学生,编号为 \(i\) 的学生有一个位置 \(a_i\)。
有 \(m\) 个询问,每次询问编号在 \([l,r]\) 区间内的学生跑到区间 \([k,k+r-l]\) 中的位置花费的距离总和的最小值。
每个学生的初始位置互不相同,最终到达的位置也必须互不相同。
题解:
不难证明,学生跑到最终的位置时,他们的相对位置不改变至少是最优解之一,这可以脑补一下。
所以我们只需要求最终相对位置不变时的答案即可。
因为学生两两位置不同,所以最终有一部分学生向右跑,有一部分学生向左跑。
向右跑的学生对答案的贡献是 \(k+rk_i-1-a_i\),\(rk_i\) 表示他的位置在这个编号区间中的学生是第 \(rk_i\) 小的。
向左跑的学生对答案的贡献是 \(a_i-k-rk_i+1\)。
显然左边一部分学生向右跑,右边一部分学生向左跑。
考虑使用主席树处理这个问题。
对权值线段树进行可持久化,则编号区间内的学生就是两个线段树相减。
考虑递归进一个区间 \([l,r]\),有 \(4\) 种情况。
这个区间中没有学生。直接返回 \(0\)。
这个区间中的学生全部往右跑。返回 \((\sum k+rk_i-1)-(\sum a_i)\),左边是等差数列求和的形式,右边可以直接记。
这个区间中的学生全部往左跑。返回 \((\sum a_i)-(\sum k+rk_i-1)\)。
不能确定这个区间中的学生的方向,递归到子树处理。
直接在主席树上实现即可。
时间复杂度 \(O(n\log n+m\log n\times\text{wys})\),因为我不会分析递归的复杂度,可能是 \(O(m\log n)\) 的。
洛谷 P4559: bzoj 5319: [JSOI2018]军训列队的更多相关文章
- BZOJ.5319.[JSOI2018]军训列队(主席树)
LOJ BZOJ 洛谷 看错了,果然不是\(ZJOI\)..\(jry\)给\(JSOI\)出这么水的题做T3么= = 感觉说的有点乱,不要看我写的惹=-= 对于询问\(l,r,k\),设\(t=r- ...
- BZOJ5319 & 洛谷4559 & LOJ2551:[JSOI2018]军训列队——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5319 https://www.luogu.org/problemnew/show/P4559 ht ...
- bzoj 5319: [Jsoi2018]军训列队
Description Solution 最优情况可以是所有人按位置从小到大排序之后依次占到自己 \(K+\) 排名的位置上去 因为每一个休息位置不同,那么一定递增,所以一定存在一个分界点,左边的是往 ...
- 洛谷P4559 [JSOI2018]列队 【70分二分 + 主席树】
题目链接 洛谷P4559 题解 只会做\(70\)分的\(O(nlog^2n)\) 如果本来就在区间内的人是不用动的,区间右边的人往区间最右的那些空位跑,区间左边的人往区间最左的那些空位跑 找到这些空 ...
- BZOJ5319: [Jsoi2018]军训列队
BZOJ5319: [Jsoi2018]军训列队 https://lydsy.com/JudgeOnline/problem.php?id=5319 分析: 易知把所有人按原本的顺序放到\([K,K+ ...
- [JSOI2018]军训列队
[JSOI2018]军训列队 题目大意: \(n(n\le5\times10^5)\)个学生排成一排,第\(i\)个学生的位置为\(a_i\).\(m(m\le5\times10^5)\)次命令,每次 ...
- 洛谷 P3307: bzoj 3202: [SDOI2013] 项链
题目传送门:洛谷P3307.这题在bzoj上是权限题. 题意简述: 这题分为两个部分: ① 有一些珠子,每个珠子可以看成一个无序三元组.三元组要满足三个数都在$1$到$m$之间,并且三个数互质,两个珠 ...
- 洛谷 4106 / bzoj 3614 [HEOI2014]逻辑翻译——思路+类似FWT
题目:https://www.luogu.org/problemnew/show/P4106 https://www.lydsy.com/JudgeOnline/problem.php?id=3614 ...
- 洛谷 P3332 BZOJ 3110 [ZJOI2013]K大数查询
题目链接 洛谷 bzoj 题解 整体二分 Code #include<bits/stdc++.h> #define LL long long #define RG register usi ...
随机推荐
- java 表单验证
java 表单验证 1.思路:通过表单选择器,表单属性过滤器提取每个表单提交的值,进行验证 2.实现:javascript通过 onSubmit()事件,判断,返回值false不提交,返回true提交 ...
- Python学习---列表,元组,字典
### 列表 list = [1,2,3,4,5,6] list.append(7) print(list) ===>>> [1, 2, 3, 4, 5, 6, 7] list[2] ...
- P4838 P哥破解密码
题目背景 P哥是一个经常丢密码条的男孩子. 在ION 8102赛场上,P哥又弄丢了密码条,笔试满分的他当然知道这可是要扣5分作为惩罚的,于是他开始破解ION Xunil系统的密码. 题目描述 定义一个 ...
- Post Lamps CodeForces - 990E(暴力出奇迹?)
题意: 在一个从0开始的连续区间上 放置几个小区间,使得这些小区间覆盖整个大区间,不同长度的小区间有不同的花费,其中有m个点,小区间的左端点不能放在这些点上 解析: 显然如果0是这m点中的一个 则无 ...
- [洛谷P4091][HEOI2016/TJOI2016]求和
题目大意:给你$n(n\leqslant10^5)$,求:$$\sum\limits_{i=0}^n\sum\limits_{j=0}^i\begin{Bmatrix}i\\j\end{Bmatrix ...
- 关于SDWebImage加载高清图片导致app崩溃的问题
链接是对于SDWebImage的使用方法 http://www.cnblogs.com/JimmyBright/p/4457258.html 使用SDWebImage加载高清图片的时候,往往会报内存溢 ...
- 【uoj129】 NOI2015—寿司晚宴
http://uoj.ac/problem/129 (题目链接) 题意 给出2~n这n-1个数,求选2个集合,使得从两集合中任意各选取1个数出来它们都互质.求方案数. Solution PoPoQQQ ...
- Reactor模式,或者叫反应器模式 - 为什么用多路io复用提供吞吐量
Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应器模式,但更多好像就直接叫reactor模式了,其实我觉着叫应答者模式更好理解一些.通过了解,这个模式更像一个侍卫,一直在等待你的召唤,或 ...
- Qt 模型/视图/委托
模型.视图.委托 模型/视图架构基于MVC设计模式发展而来.MVC中,模型(Model)用来表示数据:视图(View)是界面,用来显示数据:控制(Controller)定义界面对用户输入的反应方式. ...
- java程序文件读取与保存实例代码
class RadioHere extends JFrame implements ActionListener { private JTextArea ta=new JTextArea(10,20) ...