题目传送门

  

题目描述

现有数列 A_1,A_2,\cdots,A_NA1​,A2​,⋯,AN​ ,Q 个询问 (L_i,R_i)(Li​,Ri​) , A_{Li} ,A_{Li+1},\cdots,A_{Ri}ALi​,ALi+1​,⋯,ARi​ 是否互不相同

输入输出格式

输入格式:

第1 行,2 个整数 N,QN,Q

第2 行,N 个整数 A_{Li} ,A_{Li+1},\cdots,A_{Ri}ALi​,ALi+1​,⋯,ARi​

Q 行,每行2 个整数 L_i,R_iLi​,Ri​

输出格式:

对每个询问输出一行,“Yes” 或者“No”

输入输出样例

输入样例#1: 复制

4 2
1 2 3 2
1 3
2 4
输出样例#1: 复制

Yes
No

说明

• 对于50% 的数据, N,Q \le 10^3N,Q≤103

• 对于100% 的数据, 1 \le N,Q \le 10^5, 1 \le A_i \le N, 1 \le L_i \le R_i \le N1≤N,Q≤105,1≤Ai​≤N,1≤Li​≤Ri​≤N


  分析:很明显的莫队模板,轻松A。不过过程中被卡了读优。。。有点尴尬。。。

  Code:

#include<bits/stdc++.h>
#define Fi(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
const int N=1e5+;
int n,m,s,num=,d[N],pos[N],sum[N];bool ans[N];
struct Node{int l,r,id;}a[N];
inline bool cmp(Node x,Node y)
{return pos[x.l]==pos[y.l]?x.r<y.r:x.l<y.l;}
inline void change(int i,bool f)
{
if(f){sum[d[i]]++;if(sum[d[i]]==)num++;}
else {sum[d[i]]--;if(sum[d[i]]==)num--;}
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>m;s=int(sqrt(n));
memset(ans,false,sizeof(ans));
Fi(i,,n){cin>>d[i];pos[i]=(i-)/s+;}
Fi(i,,m){cin>>a[i].l>>a[i].r;a[i].id=i;}
sort(a+,a++m,cmp);int l=,r=;
Fi(i,,m){
while(l<a[i].l)change(l++,);
while(l>a[i].l)change(--l,);
while(r<a[i].r)change(++r,);
while(r>a[i].r)change(r--,);
if(num==a[i].r-a[i].l+)ans[a[i].id]=true;}
Fi(i,,m)if(ans[i])printf("Yes\n");else printf("No\n");
return ;
}

洛谷P3901 数列找不同 [莫队]的更多相关文章

  1. 洛谷P3901 数列找不同(莫队水题)

    重温下手感,判断区间是否全是不同的数字有两种做法,一个长度为len的区间不同的数字,参见HH的项链,一种是区间众数,参见蒲公英,是水题没错了.明天搞数据库,然后继续自己的gre和训练计划 #inclu ...

  2. 洛谷 P3901 数列找不同(莫队)

    题目链接:https://www.luogu.com.cn/problem/P3901 这道题简单莫队模板题,然后$add$和$del$分别处理$vis[]$从$0-->1$和从$1--> ...

  3. 洛谷P3901 数列找不同(莫队)

    传送门 我不管我不管我就是要用莫队 直接用莫队裸上 //minamoto #include<iostream> #include<cstdio> #include<alg ...

  4. 【刷题】洛谷 P3901 数列找不同

    题目描述 现有数列 \(A_1,A_2,\cdots,A_N\) ,Q 个询问 \((L_i,R_i)\) , \(A_{Li} ,A_{Li+1},\cdots,A_{Ri}\) 是否互不相同 输入 ...

  5. Bzoj2120/洛谷P1903 数颜色(莫队)

    题面 Bzoj 洛谷 题解 考虑对操作离线后分块处理询问操作(莫队算法),将询问操作按照编号分块后左端点第一关键字,右端点第二关键字排序(分块大小为\(n^{\frac 23}\)),对于每一个询问操 ...

  6. luogu 数列找不同-莫队

    https://www.luogu.org/problemnew/show/P3901 了解过莫队的人应该都清楚,莫队是一个优化的暴力,可以在相对暴力比较优的时间中,求出一段序列内的某些性质(例:数字 ...

  7. 洛谷P3245 [HNOI2016]大数 【莫队】

    题目 题解 除了\(5\)和\(2\) 后缀数字对\(P\)取模意义下,两个位置相减如果为\(0\),那么对应子串即为\(P\)的倍数 只用对区间种相同数个数\(x\)贡献\({x \choose 2 ...

  8. 洛谷 P4887 -【模板】莫队二次离线(第十四分块(前体))(莫队二次离线)

    题面传送门 莫队二次离线 mol ban tea,大概是这道题让我第一次听说有这东西? 首先看到这类数数对的问题可以考虑莫队,记 \(S\) 为二进制下有 \(k\) 个 \(1\) 的数集,我们实时 ...

  9. P3901 数列找不同

    P3901 数列找不同 题目描述 现有数列 \(A_1,A_2,\cdots,A_N\) ,Q 个询问 \((L_i,R_i)\) , \(A_{Li} ,A_{Li+1},\cdots,A_{Ri} ...

随机推荐

  1. vs 统计有效代码行数

    1.Visual Studio中,crtl+Shift+F,输入b*[^:b#/]+.*$ ,查找范围:选择整个解决方案,查找选项:使用正则表达式,文件类型:*.cs;*.cshtml  选择查找全部

  2. netcore 使用log4net

    1.Install Install-Package log4net 2. conifg 創建文件:log4net.config <?xml version="1.0" enc ...

  3. 【BZOJ1085】【SCOI2005】骑士精神 [A*搜索]

    骑士精神 Time Limit: 10 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description 在一个5×5的棋盘上有12个白色的 ...

  4. 所有和Java中代理有关的知识点都在这了。

    对于每一个Java开发来说,代理这个词或多或少都会听说过.你可能听到过的有代理模式.动态代理.反向代理等.那么,到底什么是代理,这么多代理又有什么区别呢.本文就来简要分析一下. 代理技术,其实不只是J ...

  5. python模块subprocess学习

    当我们想要调用系统命令,可以使用os,commands还有subprocess模块整理如下: os模块: 1. os.system 输出命令结果到屏幕.返回命令执行状态. >>> o ...

  6. Fiddler-- 安装HTTPs证书

    1. 现在很多带有比较重要信息的接口都使用了安全性更高的HTTPS,而Fiddler默认是抓取HTTP类型的接口,要想查看HTTPS类型接口就需要安装fiddler证书.   2.打开Fiddler, ...

  7. hydra 密码破解工具详解

    一.简介 hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码.官 网:http://www.thc.org/thc-hydra,可支持AFP, Cisco AAA, Ci ...

  8. 查看服务器是否被DDOS攻击的方法

    伴随着现代互联网络快速发展,更加容易出现被攻击.尤其是ddos攻击已经不在是大网站需要关心的事情了.不少中小型企业,也在遭受ddos攻击.站长对ddos攻击不了解,所以网站被ddos攻击的时候,都不会 ...

  9. Optimizing TLB entries for mixed page size storage in contiguous memory

    A system and method for accessing memory are provided. The system comprises a lookup buffer for stor ...

  10. 25个Linux相关的网站【转】

    转自:http://www.cnblogs.com/Lindaman/p/4552805.html 下面是25个最具有影响力,也是最重要的Linux网站,这些网站提供了Linux的分发包,软件,文件, ...