题目

分块题都先考虑一个操作:
如果每次操作都是[1,n][1,n][1,n],
那么我们建一个大根堆,每次删除最大值,再把AAA塞进去即可。

再考虑一个操作:
操作完之后要根据堆和初始的数组更新出现在的数组。
看一行代码:

for(int i=st[id];i<=ed[id];i++) q[id].push(a[i]),a[i]=q[id].top(),q[id].pop();

所以我们就完成了整块打标记和散块重构。

ACCode\mathcal{AC \ Code}AC Code

#include <bits/stdc++.h>
#define maxn 400005
#define S 705
#define rep(i, j, k) for (int i = (j), LIM = (k); i <= LIM; i++)
#define per(i, j, k) for (int i = (j), LIM = (k); i >= LIM; i--)
using namespace std;int n, Q, a[maxn], id[maxn], st[maxn], ed[maxn];
priority_queue<int> h[S];
priority_queue<int, vector<int>, greater<int> > q[S];void Sol_sig(int id, int l, int r, int &A) {for (int i = st[id]; i <= ed[id]; i++) q[id].push(a[i]), a[i] = q[id].top(), q[id].pop();for (int i = l; i <= r; i++)if (a[i] > A)swap(A, a[i]);for (; !h[id].empty(); h[id].pop());for (; !q[id].empty(); q[id].pop());for (int i = st[id]; i <= ed[id]; i++) h[id].push(a[i]);
}void Sol(int l, int r, int &A) {if (id[l] == id[r])Sol_sig(id[l], l, r, A);else {Sol_sig(id[l], l, ed[id[l]], A);for (int i = id[l] + 1; i < id[r]; i++) {q[i].push(A);if (h[i].top() > A) {int t = h[i].top();h[i].pop();h[i].push(A);A = t;}}Sol_sig(id[r], st[id[r]], r, A);}
}int main() {scanf("%d%d", &n, &Q);for (int i = 1; i <= n; i++)scanf("%d", &a[i]), id[i] = i / S, h[id[i]].push(a[i]), (!st[id[i]]) && (st[id[i]] = i),ed[id[i]] = i;for (int l, r, A; Q--;) {scanf("%d%d%d", &l, &r, &A);if (l <= r)Sol(l, r, A);elseSol(l, n, A), Sol(1, r, A);printf("%d\n", A);}
}

JOISC 2016 回转寿司相关推荐

  1. android消息池,回转寿司你一定吃过!——Android消息机制(构造)

    消息机制的故事寿司陈放在寿司碟上,寿司碟按先后顺序被排成队列送上传送带.传送带被启动后,寿司挨个呈现到你面前,你有三种享用寿司的方法. 将Android概念带入后,就变成了Android消息机制的故事 ...

  2. 俄罗斯套娃(JOISC 2016 Day 1)

    俄罗斯套娃(JOISC 2016 Day 1) 题目描述 你开了一家卖俄罗斯套娃的店.因此,你向厂家订购了 \(N\)个俄罗斯套娃,这些娃娃被编号为 \(1\) 到 \(N\),其中第 \(i\) 个 ...

  3. (线段树)P5459 [BJOI2016]回转寿司

    P5459 [BJOI2016]回转寿司 添加链接描述https://www.luogu.com.cn/problem/P5459 思路:题目意思就是求出有多少个区间和在L~R范围内,这符合线段树的区 ...

  4. bzoj 4627: [BeiJing2016]回转寿司 -- 权值线段树

    4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec  Memory Limit: 256 MB Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店. ...

  5. BZOJ4627 回转寿司 值域线段树

    Problem Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都 ...

  6. bzoj 4627 回转寿司(权值线段树)

    回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个 ...

  7. K - 回转寿司(值域段数(板题) + 动态开点)

    回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿 司带给小Z的味觉感受是不一样的,我们定义小Z对每盘寿司都有一个 ...

  8. Bzoj4627 [BeiJing2016]回转寿司

    Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 329  Solved: 149 [Submit][Status][Discuss] Descript ...

  9. bzoj4627[BeiJing2016]回转寿司

    bzoj4627[BeiJing2016]回转寿司 题意: 求在一个序列中和在区间[l,r]中的连续子序列的个数.序列大小≤100000,序列元素可以为负数. 题解: 题目要求这个:l<=sum ...

最新文章

  1. android LinkedList的基本用法
  2. bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?
  3. WindowsForm 窗体属性和控件
  4. 论文笔记-Leverage Lexical Knowledge for Chinese Named Entity Recognition via Collaborative Graph Network
  5. HBuilderx中编译sass文件
  6. 全球超高精度 IP 实时定位系统--捕风者
  7. html 中加flash,用HTML代码添加FLASH
  8. 《Git 教程 - 廖雪峰》
  9. 鼠标计算机英语怎么说,鼠标英语
  10. ValueError: You are trying to load a weight file containing 0 layers into a model with 16 layers.
  11. listview增大条目间距
  12. 符号函数操作 符号积分变换
  13. 使用 k3d 在Windows上安装 k3s
  14. 如何用Python和hashlib实现文件MD5码的批量存储
  15. IBIS SPICE模型对比 (转帖)
  16. Docker Swarm 命令
  17. Solidworks二次开发:获取零件选中边的圆心坐标
  18. webmsxyw x-s分析
  19. PHPer为什么被认为是草根?
  20. i春秋女黑客熊猫TV女主播激情碰撞,极客挑战赛24小时在线直播

热门文章

  1. 国际电话组件封装使用以及vuephonenumberinput属性解读
  2. 精选收集50个计算机热门视频教程免费下载
  3. Swift Invalid bitcode version (Producer: '802.0.41.0_0' Reader: '800.0.42.1_0')
  4. OCA认证背后的思考
  5. 基于几个多分类的算法实现中风预测(准确率95.5%)
  6. cwl的网络流24题练习
  7. 2017年程序猿的九大提升点(微记录)
  8. 论文阅读_Robust Counterfactual Explanations on Graph Neural Networks
  9. 【Axure教程】中继器版视频播放列表
  10. 女生学计算机好吗有辐射,电脑辐射对女人有害吗