3339: Rmq Problem

Time Limit: 20 Sec  Memory Limit: 128 MB
Submit: 1075  Solved: 549
[Submit][Status][Discuss]

Description

Input

Output

Sample Input

7 5
0 2 1 0 1 3 2
1 3
2 3
1 4
3 6
2 7

Sample Output

3
0
3
2
4

HINT

Source

[Submit][Status][Discuss]

3585 mex 一模一样,代码不变,AC依旧。

 #include <bits/stdc++.h>

 const int mxn = ;

 int n, m, num[mxn], nxt[mxn], lst[mxn], mex[mxn], vis[mxn], ans[mxn];

 struct query {
int l, r, t;
}q[mxn]; inline bool cmp(const query &a, const query &b)
{
return a.l < b.l;
} signed main(void)
{
scanf("%d%d", &n, &m); for (int i = ; i <= n; ++i)
{
scanf("%d", num + i);
if (num[i] > n)
num[i] = n;
} for (int i = ; i <= n; ++i)
lst[i] = n + ; for (int i = n; i >= ; --i)
nxt[i] = lst[num[i]], lst[num[i]] = i; for (int i = ; i <= n; ++i)
{
mex[i] = mex[i - ];
vis[num[i]] = true;
while (vis[mex[i]])
++mex[i];
} for (int i = ; i <= m; ++i)
scanf("%d%d", &q[i].l, &q[i].r), q[i].t = i; std::sort(q + , q + m + , cmp); int left = ; for (int i = ; i <= m; ++i)
{
while (left < q[i].l)
{
int t = nxt[left];
int p = num[left];
for (int j = t - ; j > left; --j)
{
if (mex[j] <= p)break;
else mex[j] = p;
}
++left;
} ans[q[i].t] = mex[q[i].r];
} for (int i = ; i <= m; ++i)
printf("%d\n", ans[i]);
}

@Author: YouSiki

BZOJ 3339: Rmq Problem的更多相关文章

  1. Bzoj 3339: Rmq Problem && Bzoj 3585: mex 莫队,树状数组,二分

    3339: Rmq Problem Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 833  Solved: 397[Submit][Status][D ...

  2. BZOJ 3339: Rmq Problem 莫队算法

    3339: Rmq Problem 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3339 Description n个数,m次询问l,r ...

  3. bzoj 3339 Rmq Problem / mex

    题目 我的树状数组怎么那么慢啊 就是一道水题,我们考虑一下对于一个区间\([l,r]\)什么样的数能被计算 显然需要对于一个\(j\),需要满足\(j<l\)且\(nxt_{j}>r\), ...

  4. BZOJ 3339 Rmq Problem(离线+线段树+mex函数)

    题意: q次询问,问[l,r]子区间的mex值 思路: 对子区间[l,r],当l固定的时候,[l,r]的mex值对r单调不减 对询问按照l离线,对当前的l,都有维护一个线段树,每个叶节点保存[l,r] ...

  5. 【BZOJ】3339: Rmq Problem & 3585: mex(线段树+特殊的技巧)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3585 好神的题. 但是!!!!!!!!!!!!!!我线段树现在要开8倍空间才能过!!!!!!!!!! ...

  6. bzoj 3585: mex && 3339: Rmq Problem -- 主席树

    3585: mex Time Limit: 20 Sec  Memory Limit: 128 MB Description 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区 ...

  7. 3339: Rmq Problem

    Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1269  Solved: 665[Submit][Status][Discuss] Descripti ...

  8. 【BZOJ】【3339】Rmq Problem

    离线+线段树 Orz Hzwer,引用题解: 这一题在线似乎比较麻烦 至于离线.. 首先按照左端点将询问排序 然后一般可以这样考虑 首先如何得到1-i的sg值呢 这个可以一开始扫一遍完成 接着考虑l- ...

  9. 维护后面的position sg函数概念,离线+线段 bzoj 3339

    3339: Rmq Problem Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1160  Solved: 596[Submit][Status][ ...

随机推荐

  1. ThreeJS实现波纹粒子效果

    今天我们来用ThreeJS的库实现一个波纹粒子效果,我们用到的ThreeJS的库有CanvasRenderer.js,OrbitControls.js,Projector.js,stats.min.j ...

  2. 使用Amplify Shader Editor优化特效Shader

    ASE相对于Shader Forge生成的代码更加干净, 用于制作特效的再合适不过,以下是使用ASE优化一个SF制作特效的经过: ## 分析美术用SF制作的Shader 懒得装SF, 直接分析代码可知 ...

  3. 本地使用js或jquery操作cookie在谷歌浏览器chrome中不生效

    一般是在本地调试cookie,无论使用jquery cookie插件还是js原生态cookie方法,在谷歌浏览器chrome中都不生效,这是什么原因? 原因是: chrome不支持js在本地操作coo ...

  4. 用Python做一个翻译软件

    前两天吃了平哥的一波狗粮,他给女朋友写了一个翻译软件,自己真真切切的感受到了程序员的浪漫.在学习requests请求的时候做过类似的Demo,给百度翻译发送一个post请求可以实现任意词组的翻译,利用 ...

  5. 一个可以自由存取的onedriver

    https://cittedu-my.sharepoint.com/personal/jostin_5gd_me/Documents/jostin

  6. Mac环境搭建以太坊私有链

    原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链.在mac上搭建环境主要需要以下步骤. geth安装 geth是go-ethereum的简写,是一个用go语言编 ...

  7. final发布--PSP Daily软件功能书(最终版)

    一.开发背景 你在完成了一周的软件工程作业后,需要提交一个PSP图表,里面有4项,如下所示: 1.本周PSP表格,包含每项任务的开始.中断.结束.最终时间,格式如下: 2.本周进度条,包含从开始到现在 ...

  8. 20172301 2017-2018-2 《程序设计与数据结构》实验一《Java开发环境的熟悉》实验报告

    20172301 2017-2018-2 <程序设计与数据结构>实验一<Java开发环境的熟悉>实验报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 郭 ...

  9. springmvc 映射重复

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springfr ...

  10. HDU 4123 Bob’s Race 树形dp+单调队列

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4123 Time Limit: 5000/2000 MS (Java/Others) Memory L ...