ref

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int n, m, a[100005], sum[400005], tag[400005], q;
struct Node{
int opt, lll, rrr;
}nd[100005];
void pushDown(int o, int l, int r, int lson, int rson, int mid){
tag[lson] = tag[rson] = tag[o];
sum[lson] = (mid - l + 1) * tag[o];
sum[rson] = (r - mid) * tag[o];
tag[o] = -1;
}
void modify(int o, int l, int r, int x, int y, int k){
if(x>y) return ;
if(l>=x && r<=y){
sum[o] = (r - l + 1) * k;
tag[o] = k;
}
else{
int mid=(l+r)>>1;
int lson=o<<1;
int rson=lson|1;
if(tag[o]!=-1) pushDown(o, l, r, lson, rson, mid);
if(x<=mid) modify(lson, l, mid, x, y, k);
if(mid<y) modify(rson, mid+1, r, x, y, k);
sum[o] = sum[lson] + sum[rson];
}
}
int query(int o, int l, int r, int x, int y){
if(x>y) return 0;
if(l>=x && r<=y) return sum[o];
else{
int mid=(l+r)>>1;
int lson=o<<1;
int rson=lson|1;
if(tag[o]!=-1) pushDown(o, l, r, lson, rson, mid);
int re=0;
if(x<=mid) re += query(lson, l, mid, x, y);
if(mid<y) re += query(rson, mid+1, r, x, y);
return re;
}
}
bool chk(int lim){
memset(sum, 0, sizeof(sum));
memset(tag, -1, sizeof(tag));
for(int i=1; i<=n; i++)
if(a[i]>lim)
modify(1, 1, n, i, i, 1);
for(int i=1; i<=m; i++){
int x=query(1, 1, n, nd[i].lll, nd[i].rrr);
if(nd[i].opt){
modify(1, 1, n, nd[i].lll, nd[i].lll+x-1, 1);
modify(1, 1, n, nd[i].lll+x, nd[i].rrr, 0);
}
else{
x = nd[i].rrr - nd[i].lll + 1 - x;
modify(1, 1, n, nd[i].lll, nd[i].lll+x-1, 0);
modify(1, 1, n, nd[i].lll+x, nd[i].rrr, 1);
} }
return query(1, 1, n, q, q)==0;
}
int main(){
cin>>n>>m;
for(int i=1; i<=n; i++)
scanf("%d", &a[i]);
for(int i=1; i<=m; i++)
scanf("%d %d %d", &nd[i].opt, &nd[i].lll, &nd[i].rrr);
cin>>q;
int l=1, r=n, mid, re;
while(l<=r){
mid = (l + r) >> 1;
if(chk(mid)) re = mid, r = mid - 1;
else l = mid + 1;
}
cout<<re<<endl;
return 0;
}

loj2055 「TJOI / HEOI2016」排序的更多相关文章

  1. loj #2055. 「TJOI / HEOI2016」排序

    #2055. 「TJOI / HEOI2016」排序   题目描述 在 2016 年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他. 这个 ...

  2. 【LOJ】#2055. 「TJOI / HEOI2016」排序

    题解 看错题了,我以为是询问Q是个数字,问它在哪个位置 我一想这不直接01序列搞一下就好了嘛(事实上是012) 然后呢,我发现样例没过. 啊我看错题了,问的是Q这个位置是啥-- 哦,套用我之前的想法不 ...

  3. loj#2054. 「TJOI / HEOI2016」树

    题目链接 loj#2054. 「TJOI / HEOI2016」树 题解 每次标记覆盖整棵字数,子树维护对于标记深度取max dfs序+线段树维护一下 代码 #include<cstdio> ...

  4. 「TJOI / HEOI2016」字符串

    「TJOI / HEOI2016」字符串 题目描述 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物.生日礼物放在一个神奇的箱子中.箱子外边写了一个长为 \(n\) 的字符串 \(s\),和 ...

  5. AC日记——#2054. 「TJOI / HEOI2016」树

    #2054. 「TJOI / HEOI2016」树 思路: 线段树: 代码: #include <cstdio> #include <cstring> #include < ...

  6. AC日记——#2057. 「TJOI / HEOI2016」游戏 LOJ

    #2057. 「TJOI / HEOI2016」游戏 思路: 最大流: 代码: #include <cstdio> #include <cstring> #include &l ...

  7. loj2058 「TJOI / HEOI2016」求和 NTT

    loj2058 「TJOI / HEOI2016」求和 NTT 链接 loj 思路 \[S(i,j)=\frac{1}{j!}\sum\limits_{k=0}^{j}(-1)^{k}C_{j}^{k ...

  8. LOJ #2058「TJOI / HEOI2016」求和

    不错的推柿子题 LOJ #2058 题意:求$\sum\limits_{i=0}^n\sum\limits_{j=0}^nS(i,j)·2^j·j!$其中$ S(n,m)$是第二类斯特林数 $ Sol ...

  9. loj#2059. 「TJOI / HEOI2016」字符串 sam+线段树合并+倍增

    题意:给你一个子串,m次询问,每次给你abcd,问你子串sa-b的所有子串和子串sc-d的最长公共前缀是多长 题解:首先要求两个子串的最长公共前缀就是把反过来插入变成最长公共后缀,两个节点在paren ...

随机推荐

  1. Flask之目录结构

    学习Flask,整合其目录结构也是比较重要的.一个最基础的Flask目录如下所示: 一.SQLAlchemy-utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchem ...

  2. lambda匿名函数,sorted排序,filter()筛选,map()映射

    一丶匿名函数 语法: 函数名 = lambda参数:返回值 # 普通的正常的函数 def func(n): return n * n ret = func(9) print(ret) # 匿名函数 a ...

  3. SVG矢量图【转】

    var iconArray=[ //'circle', //实心圆 //'rect', //矩形 //'roundRect', //圆角矩形 //'triangle', //三角形 //'diamon ...

  4. ORACLE 数据库的级联查询 一句sql搞定(部门多级)

    在ORACLE 数据库中有一种方法可以实现级联查询   select  *                //要查询的字段 from table              //具有子接点ID与父接点I ...

  5. 安装express

    就目前来说安装express需要走几个步骤,要不就会出现在检查版本的时候就会出现,expres不是内部的命令或者是这种 安装的步骤: 1. 先是输入npm install -g express-gen ...

  6. pat乙级1051

    当结果中a或者b小于0,大于0.005时,保留两位小数会输出-0.00,但应输出0.00. #include <iostream> #include <math.h> usin ...

  7. Sql Server 表的复制

    声名:A,B ,都是表 --B表存在(两表结构一样)insert into B select * from A 若两表只是有部分(字段)相同,则 insert into B(col1,col2,col ...

  8. 【luogu P3609 [USACO17JAN]Hoof, Paper, Scissor蹄子剪刀布】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3609 ### 看着标签什么记搜什么暴力点进来,读完题第一直觉DP? 还真是个\(DP\). 题目所描述的状态 ...

  9. github不能加载css、js解决办法

    很奇怪,上午在公司还能正常访问github,晚点访问却有问题,页面样式明显错乱. 在FireFox下用F12开发者工具一看,有2条css和2条js 404 了,猜想应该是github的DNS被GFW污 ...

  10. nginx反向代理与正向代理的区别

    http://blog.csdn.net/m13666368773/article/details/8060481