先摆官方题解吧.........

....................有什么好讲的呢.......

注意一些地方常数优化一下.......然后......$bitset$怎么暴力怎么来吧......

仿佛有神仙$n \log^3 n$跑过了......只能$orz$....

#include <cstdio>
#include <bitset>
#include <cstring>
#include <iostream>
using namespace std; extern inline char gc() {
static char RR[], *S = RR + , *T = RR + ;
if(S == T) fread(RR, , , stdin), S = RR;
return *S ++;
}
inline int read() {
int p = , w = ; char c = gc();
while(c > '' || c < '') { if(c == '-') w = -; c = gc(); }
while(c >= '' && c <= '') p = p * + c - '', c = gc();
return p * w;
} int wr[], rw;
#define pc(o) *O ++ = o
char WR[], *O = WR;
inline void write(int x) {
if(!x) pc('');
if(x < ) x = -x, pc('-');
while(x) wr[++ rw] = x % , x /= ;
while(rw) pc(wr[rw --] + ''); pc('\n');
} #define ri register int
#define sid 65555
#define wid 10005 int n, q, rt, id;
struct seg {
int ls, rs;
bitset <wid> v, tag;
} t[sid * ];
bitset <wid> ask, sum[wid]; void ins(int &o, int l, int r, int ml, int mr, int c) {
if(ml > r || mr < l) return;
if(!o) o = ++ id; t[o].v[c] = ;
if(ml <= l && mr >= r) { t[o].tag[c] = ; return; }
int mid = (l + r) >> ;
ins(t[o].ls, l, mid, ml, mr, c);
ins(t[o].rs, mid + , r, ml, mr, c);
} void qry(int &o, int l, int r, int ml, int mr) {
if(ml > r || mr < l || !o) return;
if(ml <= l && mr >= r) { ask |= t[o].v; return; }
ask |= t[o].tag;
int mid = (l + r) >> ;
qry(t[o].ls, l, mid, ml, mr);
qry(t[o].rs, mid + , r, ml, mr);
} int qry(int l, int r, int k) {
ask.reset();
qry(rt, , n, l, r);
if(ask.count() < k || k == ) return -;
int L = , R = , ans = -;
while(L <= R) {
int mid = (L + R) >> ;
if((ask & sum[mid]).count() >= k) R = mid - , ans = mid;
else L = mid + ;
}
return ans;
} int main() { sum[][] = ;
for(ri i = ; i <= ; i ++) {
sum[i] = sum[i - ];
sum[i][i] = ;
} n = read(); q = read();
for(ri i = ; i <= q; i ++) {
int opt = read(), L = read(), R = read();
if(opt == ) ins(rt, , n, L, R, read());
else write(qry(L, R, read()));
}
fwrite(WR, , O - WR, stdout);
return ;
}

51nod1981 如何愉快地与STL玩耍的更多相关文章

  1. 51nod 1981 如何愉快地与STL玩耍

    Description 驴蛋蛋在愉快地与STL玩耍 突然间小A跳了出来对驴蛋蛋说,看你与STL玩的很开心啊,那我给你一个大小为N的vector,这个vector上每个位置上是一个set, 每次我会在闭 ...

  2. xcode8继续愉快的使用插件

    https://github.com/inket/update_xcode_plugins https://github.com/fpg1503/MakeXcodeGr8Again xcode8增加了 ...

  3. 如何用VSCode愉快的写Python

    在学习Python的过程中,一直没有找到比较趁手的第三方编辑器,用的最多的还是Python自带的编辑器.由于本人用惯了宇宙第一IDE(Visual Studio),所以当Visual Studio C ...

  4. python操作mysql总结

    Windows系统,python环境搭建. 下载并安装python2.7.11 https://www.python.org/downloads/ 下载并安装python的mysql包: http:/ ...

  5. Windows上Python2和3如何兼容

    作者:匿名用户链接:https://www.zhihu.com/question/21653286/answer/95532074来源:知乎著作权归作者所有,转载请联系作者获得授权.想学习Python ...

  6. python环境准备

    一.环境准备. 1.安装python3.5.2(勾选环境变量),python2.7.12 2.设置环境变量 (要求命令行输入python,进入python2命令行,打python3时,进入python ...

  7. [python]_ELVE_pip2和pip3如何共存

    作者:匿名用户链接:https://www.zhihu.com/question/21653286/answer/95532074来源:知乎著作权归作者所有,转载请联系作者获得授权. 想学习Pytho ...

  8. 短文本分析----基于python的TF-IDF特征词标签自动化提取

    绪论 最近做课题,需要分析短文本的标签,在短时间内学习了自然语言处理,社会标签推荐等非常时髦的技术.我们的需求非常类似于从大量短文本中获取关键词(融合社会标签和时间属性)进行用户画像.这一切的基础就是 ...

  9. 同时装了Python3和Python2,怎么用pip

    作者:匿名用户链接:https://www.zhihu.com/question/21653286/answer/95532074来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

随机推荐

  1. js中不能做变量名的字符

    JavaScript中不能作为变量名的关键字和保留字总结: 1.js中的关键字: break case catch continue default delete do else finally fo ...

  2. 浅谈Stein算法求最大公约数(GCD)的原理及简单应用

    一.Stein算法过程及其简单证明 1.一般步骤: s1:当两数均为偶数时将其同时除以2至至少一数为奇数为止,记录除掉的所有公因数2的乘积k: s2:如果仍有一数为偶数,连续除以2直至该数为奇数为止: ...

  3. NYOJ 328 完全覆盖 (找规律)

    题目链接 描述 有一天小董子在玩一种游戏----用21或12的骨牌把mn的棋盘完全覆盖.但他感觉游戏过于简单,于是就随机生成了两个方块的位置(可能相同),标记一下,标记后的方块不用覆盖.还要注意小董子 ...

  4. zepto.js 实现原理解析

    zepto 是移动端常用的 dom 库,代码轻巧,操作方式类同 jquery.那么 zepto 的核心实现原理是什么呢?

  5. 根据 plist 还原 图片

    1. python 环境自己配置(支持windows Mac ) 2. 把所有的 plist  和 大图片放到一个目录下 3.如果添加了 系统环境变量 就直接双击运行脚本,如果没有设置,把脚本拽到DO ...

  6. document.write 简介

    document.write 的执行分两种情况: 第一种:dom加载已完成 1. 执行 document.open() (即会清空document) 2. 执行 document.write() 3. ...

  7. arch点击硬盘无法挂载

    出现问题如下 在使用xfce4桌面的时候在点击硬盘图标时可以挂载虽然要求你输入root密码 但是在使用openbox的时候点击硬盘图标却出现如下提示,权限的问题 Not authorized to p ...

  8. php webshell常见函数

    0x1 直接在字符串变量后面加括号, 会调用这个函数: <?php $s = 'system'; $e = 'assert'; $s('whoami'); $e('phpinfo();'); 0 ...

  9. Metlnfo CMS全版本漏洞收集

    根据https://www.seebug.org/appdir/MetInfo 进行书写. [版本:Metlnfo 4.0] 漏洞标题:Metlnfo cms任意用户密码修改 漏洞文件:member/ ...

  10. Ubuntu之设置应用开机自启动

    前言 前面使用oricle-Linux的时候,设置开机自启动使用的是chkconfig,现在使用ubuntu的时候发现Ubuntu系统没有了RH系统中的 chkconfig命令,因此研究了一下ubun ...