链接: P4867 题意: 给出长度为 \(n(1\leq n\leq 10^5)\) 的序列 \(s\),保证\(1\leq s_i\leq n\).有 \(m(1\leq m\leq 10^6)\) 次询问,每次询问给出 \(4\) 个整数 \(l,r,a,b(1\leq l\leq r\leq n,1\leq a\leq b\leq n)\),询问在 \([l,r]\) 的序列中有多少种权值属于 \([a,b]\). 分析: 感觉这道题和数颜色有一点像,区别是有值域的范围限制.看操作可以离…
传送门 本来打算用主席树 然后发现没办法维护颜色数 于是用了莫队加树状数组 然后竟然A了…… //minamoto #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==…
---题面--- 题解: 题目要求统计一个区间内数值在[a, b]内的数的个数和种数,而这个是可以用树状数组统计出来的,所以可以考虑莫队. 考虑区间[l, r]转移到[l, r + 1],那么对于维护个数的树状数组就直接加即可. 对于维护种数的树状数组,我们额外维护一个数组num,表示数a在区间内出现了多少次,如果是新出现的,那么就加入树状数组. 如果要删除一个数并且这个数在区间内只出现了一次,那么就删除这个数.注意不论什么情况都要实时维护num数组. 然后莫队即可. Gty的二逼妹子序列是洛谷…
3809: Gty的二逼妹子序列 Time Limit: 35 Sec  Memory Limit: 28 MBSubmit: 868  Solved: 234[Submit][Status][Discuss] Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题.   对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数.   为了方便,我们规定妹子们的美丽度全都在[1,n]中.   给定一个长度为n(1<=n<=10…
Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)的正整数序列s(1<=si<=n),对于m(1<=m<=1000000)次询问“l,r,a,b”,每次输出sl...sr中,权值∈[a,b]的权值的种类数. Input 第一行包括两个整数n…
题目描述 给你一个长度为\(n\)的数列,还有\(m\)个询问,对于每个询问\((l,r,a,b)\),输出区间\([l,r]\)有多少范围在\([a,b]\)的权值. \(n\leq 100000,m\leq 1000000\) 题外话 Q:这道题和BZOJ3809有什么区别呢? A:卡空间. 题解 考虑莫队. 每次转移时如果用树状数组很明显会TLE.所以要分块. 每\(\sqrt n\)个数分一块.这样转移是\(O(1)\)的,查询是\(O(\sqrt n)\)的. 时间复杂度:\(O(n\…
题意 给出长度为 \(n\) 的序列,\(m\) 次询问,每次给出 \(l,r,a,b\) ,表示询问区间 \([l,r]\) 中,权值在 \([a,b]\) 范围的数的种类数. \(n\leq 10^5,m\leq m\leq 10^6, a\leq b\leq n\). 分析 直接莫队+树状数组的复杂度是 \(O(m\sqrt n\ logn)\). 把树状数组改成分块,这样查询的时间是 \(O(\sqrt n)\) ,但是修改是 \(O(1)\) 的. 总时间复杂度为 \(O(m\sqrt…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3809 容易想到树状数组维护值域.但修改和查询都是 log 太慢. 考虑有 nsqrt(n) 个修改.m个查询,所以给查询 sqrt(n) ,给修改 O(1) .对值域分块即可.(msqrt(n)也能过?) #include<iostream> #include<cstdio> #include<cstring> #include<algorithm>…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3809 据说一开始应该想到莫队+树状数组,然而我想的却是莫队+权值线段树... 如果用权值线段树,则修改和查询都是 O(logn),总复杂度 O(n√nlogn),艰难...(而且仔细一看空间有点卡?) 看了TJ,才发现权值也可以分块,则查询 O(√n) 但修改 O(1),就可以过咯~ 代码如下: #include<iostream> #include<cstdio> #inc…
题目描述 Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1≤n≤100000)的正整数序列s(1≤si≤n),对于m(1≤m≤1000000)次询问l,r,a,b,每次输出sl⋯sr中,权值∈[a,b]的权值的种类数. 输入输出格式 输入格式: 第一行包括两个整数n,m(1≤n≤100000,1≤m≤10000…
原题传送门 同Luogu P4396 [AHOI2013]作业 询问多了10倍,但还能跑过(smog #include <bits/stdc++.h> #define N 100005 #define M 1000005 //#define getchar nc using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+f…
3809: Gty的二逼妹子序列 Time Limit: 80 Sec  Memory Limit: 28 MBSubmit: 1387  Solved: 400[Submit][Status][Discuss] Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题.   对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数.   为了方便,我们规定妹子们的美丽度全都在[1,n]中.   给定一个长度为n(1<=n<=1…
3809: Gty的二逼妹子序列 Time Limit: 80 Sec  Memory Limit: 28 MBSubmit: 1072  Solved: 292[Submit][Status][Discuss] Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)…
3809: Gty的二逼妹子序列 链接 分析: 和这道AHOI2013 作业差不多.权值是1~n的,所以对权值进行分块.$O(1)$修改,$O(\sqrt n)$查询. 代码: #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<cmath> #include<cctype> #include<set> #in…
3809: Gty的二逼妹子序列 Time Limit: 80 Sec  Memory Limit: 28 MBSubmit: 1728  Solved: 513 Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)的正整数序列s(1<=si<=n),对…
[BZOJ3809]Gty的二逼妹子序列 Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)的正整数序列s(1<=si<=n),对于m(1<=m<=1000000)次询问“l,r,a,b”,每次输出sl...sr中,权值∈[a,b]的权值的…
Gty的二逼妹子序列 bzoj-3809 题目大意:给定一个n个正整数的序列,m次询问.每次询问一个区间$l_i$到$r_i$中,权值在$a_i$到$b_i$之间的数有多少个. 注释:$1\le n\le 10^5$,$1\le m\le 10^6$. 想法:说实话没想到分块和莫队. 考虑莫队如何处理旁区间:我们将值域分块. 每个块就存一下当前区间在这个块内有多少个值.特殊的是这个不是随时维护答案,是在区间刚好等于询问区间的时候处理. 莫队的时间复杂度是$O(n\sqrt{m})$:另外每次询问…
[bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业 bzoj   bzoj 题目大意:一个序列,m个询问在$[l,r]$区间的$[x,y]$范围内的数的个数/种类. 思路: 因为看不出来怎么做,所以考虑莫队. 太懒想写个树状数组但是$n\sqrt{n}log_{n}$太虚 所以将数分块,修改$O(1)$,查询$O(\sqrt{n})$ 完结 1 #include<algorithm> 2 #include<cstdio> 3 #include&l…
Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)的正整数序列s(1<=si<=n),对于m(1<=m<=1000000)次询问"l,r,a,b",每次输出sl-sr中,权值∈[a,b]的权值的种类数. Input 第一…
原文地址:http://www.cnblogs.com/GXZlegend/p/6805252.html bzoj3809 题目描述 Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题. 对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数. 为了方便,我们规定妹子们的美丽度全都在[1,n]中. 给定一个长度为n(1<=n<=100000)的正整数序列s(1<=si<=n),对于m(1<=m<=1000000)次询问“…
\(\\\) Description 给出一个长为 \(n\) 的数列 \(A\) 和 \(k\),多次询问: 对于一个区间 \([L_i,R_i]\),问区间内有多少个数在 \([a_i,b_i]\) 内,以及这些数共有多少个不同的值. \(n\le 10^5,m\le 10^6\) By wangyisong1996加强数据 \(\\\) Solution 看到最后一行心都凉了...... 真的佩服松松松的速度 不知道比我高到哪里去了 卡常卡到想吐(见代码部分吧)` \(\\\) 首先肯定莫…
BZOJ3809,是权限题. 我永远喜欢莫队. 先莫队一下移下左右指针,然后用一个数据结构维护一下区间$[a, b]$中的颜色的值,跟着指针移动一起修改修改,每一次$query$的时候就相当于查询一下$[a, b]$中的和. 其实可以直接对颜色进行分块,维护一下块内的值以及每一个位置的答案,每一次修改是$O(1)$的,每一次查询是$O(\sqrt{n})$的,因为总共要进行$m$次查询,所以总的时间复杂度是$O((n + m)\sqrt{n})$,这样写可以比树状数组以及其他的数据结构少一个$l…
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=3744 3744: Gty的妹子序列 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 2571  Solved: 746[Submit][Status][Discuss] Description 我早已习惯你不在身边,   人间四月天 寂寞断了弦.   回望身后蓝天,   跟再见说再见……     某天,蒟蒻Autumn发现了从 Gty的妹子…
### 洛谷P4396  题目链接 ### 题目大意: 有 n 个整数组成的数组,m 次询问,每次询问中有四个参数 l ,r,a,b .问你在[l,r] 的区间内的所有数中,值属于[a,b] 的数的个数以及种类数. 分析: 1.由于可以离线操作,故采用莫队. 2.由于在莫队的基础上还涉及区间[a,b]的值的个数,故可以用前缀和的思想,求得出sum(b) - sum(a - 1)即可.由于与莫队使用是动态的,故需要用树状数组维护,因为可以 logn 动态插入. 3.对于求区间种类数,需要用第二个树…
Description Autumn和Bakser又在研究Gty的妹子序列了!但他们遇到了一个难题.   对于一段妹子们,他们想让你帮忙求出这之内美丽度∈[a,b]的妹子的美丽度的种类数.   为了方便,我们规定妹子们的美丽度全都在[1,n]中.   给定一个长度为n(1<=n<=100000)的正整数序列s(1<=si<=n),对于m(1<=m<=1000000)次询问“l,r,a,b”,每次输出sl...sr中,权值∈[a,b]的权值的种类数. Input 第一行包…
这个莫队如果用线段树来维护的话,复杂度是$O(n\sqrt{n}logn+qlogn)$ 很明显,可以看出来莫队每次$O(1)$的移动因为套上了线段树变成了$O(logn)$,但莫队移动的总数是非常大的,所以乘起来复杂度就上天了. 那么有没有一种方法在修改上能够比线段树更快,同时又能相比暴力较快地回答询问呢? 我们可以用分块,把序列分成$\sqrt{n}$块,修改的复杂度是$O(1)$,回答询问的复杂度是$O(\sqrt{n})$ 这样用分块代替线段树总复杂度就变成了$O(n\sqrt{n}+q…
http://www.lydsy.com/JudgeOnline/problem.php?id=3809 题意:n个元素(1<=n<=100000)每个元素有一权值<=n.q个询问,1<=q<=1000000,每次询问区间[l, r]的权值在区间[a, b]的种类数.时限35s... #include <cstdio> #include <cstring> #include <cmath> #include <string> #…
[题意] 回答若干个询问,(l,r,a,b):区间[l,r]内权值在[a,b]的数有多少[种]. [思路] 考虑使用块状链表实现莫队算法中的插入与删除. 因为权值处于1..n之间,所以我们可以建一个基于权值的块状链表,每个块维护一个区间信息sum,表示权值在该块的数的种数. 这样插入与删除只需要O(1)的时间,查询需要O(sqrt(n))的时间,总的时间复杂度为O(n^1.5+qn^0.5) [代码] #include<set> #include<cmath> #include&l…
题意: 询问区间权值在$[a,b]$范围内种类数和个数 莫队 权值分块维护种类数和个数$O(1)-O(\sqrt{N})$ #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespace std; #define pii pair<int, int> #define MP mak…
题目链接 /* 25832 kb 26964 ms 莫队+树状数组:增加/删除/查询 都是O(logn)的,总时间复杂度O(m*sqrt(n)*logn),卡不过 莫队+分块:这样查询虽然变成了sqrt(n),但是修改是O(1)的 考虑对权值进行分块 细节... */ #include<cmath> #include<cstdio> #include<cctype> #include<algorithm> using namespace std; const…