luogu 数列找不同-莫队
https://www.luogu.org/problemnew/show/P3901
了解过莫队的人应该都清楚,莫队是一个优化的暴力,可以在相对暴力比较优的时间中,求出一段序列内的某些性质(例:数字的种类)
那么这道题就明显是一道模板题了,在l,r(左右段点)移动的过程中,记录数字的种类,若种类数等于R-L+1,那么表明没有重复。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#define N int(1e5+2)
#define M int(1e5+2)
using namespace std;
struct ahah{
int L,R,p,f;
}ask[N];
int answer,n,q,a[N],cnt[N],ans[N],k;
bool cmp(ahah a,ahah b){ return a.p<b.p; }
bool comp(ahah a,ahah b){ return a.L/k==b.L/k?a.R<b.R:a.L<b.L; }
void remove(int pos){ if(--cnt[a[pos]]==)answer--; }
void add(int pos){ if(++cnt[a[pos]]==)answer++; }
int main()
{
scanf("%d%d",&n,&q);
k=sqrt(n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
for(int i=;i<=q;i++)scanf("%d%d",&ask[i].L,&ask[i].R),ask[i].p=i;
sort(ask+,ask++q,comp);
int curl=,curr=;
for(int i=;i<=q;i++)
{
int L=ask[i].L,R=ask[i].R;
while(curl<L)remove(curl++);
while(curl>L)add(--curl);
while(curr<R)add(++curr);
while(curr>R)remove(curr--);
answer==R-L+?ans[ask[i].p]=:ans[ask[i].p]=;
}
for(int i=;i<=q;i++)ans[i]==?printf("Yes\n"):printf("No\n");
}
luogu 数列找不同-莫队的更多相关文章
- 洛谷P3901 数列找不同 [莫队]
题目传送门 题目描述 现有数列 A_1,A_2,\cdots,A_NA1,A2,⋯,AN ,Q 个询问 (L_i,R_i)(Li,Ri) , A_{Li} ,A_{Li+1},\cdots, ...
- 洛谷P3901 数列找不同(莫队水题)
重温下手感,判断区间是否全是不同的数字有两种做法,一个长度为len的区间不同的数字,参见HH的项链,一种是区间众数,参见蒲公英,是水题没错了.明天搞数据库,然后继续自己的gre和训练计划 #inclu ...
- #6164. 「美团 CodeM 初赛 Round A」数列互质-莫队
#6164. 「美团 CodeM 初赛 Round A」数列互质 思路 : 对这个题来言,莫队可以 n*根号n 离线处理出各个数出现个的次数 ,同时可以得到每个次数出现的次数 , 但是还要处理有多少 ...
- 美团codem 数列互质 - 莫队
题目描述 给出一个长度为 nnn 的数列 a1,a2,a3,...,an{ a_1 , a_2 , a_3 , ... , a_n }a1,a2,a3,...,an,以及 mm ...
- wannafly 练习赛10 E 数列查找(莫队+分块分块分块......)
链接:https://www.nowcoder.net/acm/contest/58/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...
- 【莫队】【P3901】 数列找不同
Description 现在有一个长度为\(~n~\)的数列\(~A_1~,~A_2~\dots~A_n~\),\(~Q~\)个询问\(~[l_i~,~r_i]~\),每次询问区间内是否有元素相同 I ...
- 洛谷 P3901 数列找不同(莫队)
题目链接:https://www.luogu.com.cn/problem/P3901 这道题简单莫队模板题,然后$add$和$del$分别处理$vis[]$从$0-->1$和从$1--> ...
- 洛谷P3901 数列找不同(莫队)
传送门 我不管我不管我就是要用莫队 直接用莫队裸上 //minamoto #include<iostream> #include<cstdio> #include<alg ...
- Luogu 1494 - 小Z的袜子 - [莫队算法模板题][分块]
题目链接:https://www.luogu.org/problemnew/show/P1494 题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天 ...
随机推荐
- poj1312dfs基础
就是很简单的DFS-因为数据偏小,上去就是干了 #include <stdio.h> #include <string.h> #include <math.h> # ...
- 【Tip】Python
『基本操作』 [查看Python所在目录] import os print(os.__file__) [查看已安装的包] pip list [获取当前脚本所在目录] import sys import ...
- poj 1723 Soldiers【中位数】By cellur925
题目传送门 题目大意:平面上有n个士兵,给出每个士兵的坐标,求出使这些士兵站好所需要的最少移动步数.站好要求:所有士兵y相等,x相邻.即达到 (x,y), (x+1, y), (x+2,y)……的状态 ...
- Ubuntu 18.04 LTS 安装过程
电脑: acer 1. F12开启boot menu,如果没开启,F2进去开启 2. 早点插优盘,否则进入F12的时候检测不出来,选择U盘启动,先不安装试用,进入桌面后有安装文件再安装,想直接安应该也 ...
- Oracle中dblink的创建与删除
查询数据库中有哪些dblink连接 select * from dba_objects where object_type='DATABASE LINK'; 删除公有的EMIS_PRODUCTOIN连 ...
- Win10各个版本免费激活密钥
专业版:W269N-WFGWX-YVC9B-4J6C9-T83GX 企业版:NPPR9-FWDCX-D2C8J-H872K-2YT43 家庭版:TX9XD-98N7V-6WMQ6-BX7FG-H8 ...
- PostgreSQL - 允许远程访问的设置方法
原文转载至:PostgreSQL 允许远程访问设置方法 安装PostgreSQL数据库之后,默认是只接受本地访问连接.如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置. 配 ...
- JQUERY 获取 DIV 宽度与高度(width,padding,margin,border)
一般讲的宽度指的是内容宽度,但一个 div 的实际宽度不仅只于内容宽度,尤其在做 CSS 排版时更不能搞错,必须同时考虑 Padding.Border 与 Margin 的宽度,四个加起来才是 di ...
- EXBSGS
http://210.33.19.103/problem/2183 参考:https://blog.csdn.net/frods/article/details/67639410(里面代码好像不太对) ...
- pwa-serviceWorker与页面通信postMessage
https://ppt.geekbang.org/list/gmtc2018?from=groupmessage&%3Bisappinstalled=0 http://www.sohu. ...