BZOJ 3339: Rmq Problem
3339: Rmq Problem
Time Limit: 20 Sec  Memory Limit: 128 MB
Submit: 1075  Solved: 549
[Submit][Status][Discuss]
Description

Input

Output

Sample Input
0 2 1 0 1 3 2
1 3
2 3
1 4
3 6
2 7
Sample Output
0
3
2
4
HINT

Source
和 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的更多相关文章
- Bzoj 3339: Rmq Problem && Bzoj 3585: mex  莫队,树状数组,二分
		3339: Rmq Problem Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 833 Solved: 397[Submit][Status][D ... 
- BZOJ 3339: Rmq Problem 莫队算法
		3339: Rmq Problem 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3339 Description n个数,m次询问l,r ... 
- bzoj 3339 Rmq Problem / mex
		题目 我的树状数组怎么那么慢啊 就是一道水题,我们考虑一下对于一个区间\([l,r]\)什么样的数能被计算 显然需要对于一个\(j\),需要满足\(j<l\)且\(nxt_{j}>r\), ... 
- BZOJ 3339 Rmq Problem(离线+线段树+mex函数)
		题意: q次询问,问[l,r]子区间的mex值 思路: 对子区间[l,r],当l固定的时候,[l,r]的mex值对r单调不减 对询问按照l离线,对当前的l,都有维护一个线段树,每个叶节点保存[l,r] ... 
- 【BZOJ】3339: Rmq Problem & 3585: mex(线段树+特殊的技巧)
		http://www.lydsy.com/JudgeOnline/problem.php?id=3585 好神的题. 但是!!!!!!!!!!!!!!我线段树现在要开8倍空间才能过!!!!!!!!!! ... 
- bzoj 3585: mex && 3339: Rmq Problem  -- 主席树
		3585: mex Time Limit: 20 Sec Memory Limit: 128 MB Description 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区 ... 
- 3339: Rmq Problem
		Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1269 Solved: 665[Submit][Status][Discuss] Descripti ... 
- 【BZOJ】【3339】Rmq Problem
		离线+线段树 Orz Hzwer,引用题解: 这一题在线似乎比较麻烦 至于离线.. 首先按照左端点将询问排序 然后一般可以这样考虑 首先如何得到1-i的sg值呢 这个可以一开始扫一遍完成 接着考虑l- ... 
- 维护后面的position   sg函数概念,离线+线段   bzoj 3339
		3339: Rmq Problem Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 1160 Solved: 596[Submit][Status][ ... 
随机推荐
- HTML中的map和area标签
			1. 标签介绍: (1)map标签: 该标签是指图片的映射,也就是说一张可以点击的图片的映射: 属性介绍: <1> id: <img>中的 usemap 属性可引用 <m ... 
- MySQL基础架构之查询语句执行流程
			这篇笔记主要记录mysql的基础架构,一条查询语句是如何执行的. 比如,在我们从student表中查询一个id=2的信息 select * from student where id=2; 在解释这条 ... 
- 关于java调用Dll文件的异常   Native library (win32-x86-64/CtrlNPCDLL.dll) not found in resource pat
			解决办法 将dll文件放入项目bin目录下 
- TensorFlow中的卷积函数
			前言 最近尝试看TensorFlow中Slim模块的代码,看的比较郁闷,所以试着写点小的代码,动手验证相关的操作,以增加直观性. 卷积函数 slim模块的conv2d函数,是二维卷积接口,顺着源代码可 ... 
- eclipse xml文件中按alt+/没有提示信息
			转载地址:http://blog.sina.com.cn/s/blog_972ddc1b01012mmh.html 今天要写这篇博文是因为遇到这样的不是技术的问题,但找到问题根源再解决这个问题又花费很 ... 
- iOS - Bundle 资源文件包生成和常见资源文件使用
			1.Bundle 文件 Bundle 文件,就是资源文件包.我们将许多图片.XIB.文本文件组织在一起,打包成一个 Bundle 文件.方便在其他项目中引用包内的资源. Bundle 文件是静态的,也 ... 
- OO第二阶段作业总结
			第五次作业: 设计策略: 本次作业设计的基本思路是按照指导书所给的推荐方法来完成的,即共用对象为队列盘,线程有电梯.调度器.以及扫描器,扫描器将控制台输入的有效指令加入到队列盘中,调度 ... 
- 《Java学习笔记JDK8》学习总结
			chapter 6 继承与多态 6.1何谓继承 1.继承的定义:继承就是避免多个类间重复定义共同行为. 2.总结:教材中通过设计一款RPG游戏的部分代码向我们展示了“重复”程序代码的弊端,为了改进 ... 
- C++自学笔记(3)
			类和对象 对象 具体指代一个事物 类 为了便于管理,将信息抽象. 目的不同,抽象的信息也不同(选择性暴露),也就是封装. 通过访问限定符,选择想要暴露和隐藏的信息. 对象实例化 计算机根据一个类的设计 ... 
- 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库    (三) 全双工通信
			设计思路 Arduino Leonardo初始化为发送模式,发送完成后,立即切换为接收模式,不停的监听,收到数据后立即切换为发送模式,若超过一定时间还为接收到数据,则切换为发送模式. 树莓派初始化为接 ... 
