- SPOJ 3267 DQUERY - D-query - DQUERY - D-query Time limit : 0.227s | Memory limit : 1536MB Source limit(Code length) : 50000B 题意: 給定一个长度为 n 的数组,对于之后的 m 次询问,求询问区间内不同元素的数目。 数据范围: 1 ≤ n ≤ 30000,1 ≤ ai ≤
题目链接:https://vjudge.net/problem/spoj-dquery 求区间不同数的总个数 n个数,数组a1...an,m次询问,区间al....ar中区间数的种数的总量 5 1 1 2 1 3 3 1 5 2 4 3 5 3 2 3 主席树: 每颗线段树存每个点最后出现的位置,答案等于当前线段树的区间和 离线求法: 对于求区间l~r的答案,等于1~r
DQUERY - D-query #sorting #tree English Vietnamese Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you h
SPOJ DQUERY - D-query 传送门 题意:给定区间内有多少个不同的数。 思路:离线树状数组||主席树 离线树状数组 先将询问按照r排序 然后依次将数放进数组 如果这个数出现过 将之前位置清零,当前位置+1 如果这个是没有出现过 就在当前位置+1 算法的正确性:因为是按照从左到右依次加入的,所以查询r区间里的l一定是正确的 所以只需要将r排序即可 代码如下 #include<cstd
DQUERY - D-query 题意: 给你一个n个数的数组,有m次查询,每次查询区间 [L,R] 内有多少个不相同的个数。 排序和输出都是对区间的操作,一开始将区间个数写成n,wrong了好几次。。。 #include<iostream> #include<algorithm> #include<cstdlib> #include<sstream> #include<cstring> #inc
转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 题目:给出一个序列,查询区间内有多少个不同的树 链接:http://www.spoj.com/problems/DQUERY/ 跟 着岛娘,适妞一起学主席树。。。 解法一:离线做法 将查询区间按左端点排序 对于相同的数,先更新最左边的位置 然后根据
题意: 长度为 n n n的序列, q q q次询问,每次给出 l l l、 r r r,返回序列 [ l , r ] [l,r] [l,r]中不同数的个数。 ( 1 ≤ n ≤ 3 ∗ 1 0 4 , 1 ≤ q ≤ 2 ∗ 1 0 5 ) (1\leq n\leq 3*10^4,1\leq q\leq 2*10^5) (1≤n≤3∗104,1≤q≤2∗105) 思路: 与之前主席树的权值线段树
大体题意: 给你n 个数,给你q个询问,每个询问问你某个区间上不同数的个数是多少? 思路: 主席树入门题: 简单记录一下: 这里先建立一个完整的线段树,这里的区间就代表区间了,不再是第几大了, 定义的sum 是这个区间上的不同数的个数有几个。 因为是主席树嘛,所以肯定要建立n 棵线段树,每个线段树是以每个位置的数为根,比如说该建立第i 个线段树了,如果这个数字之前没有出现过,那么我们直接以位置为划
Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct elements in the
题意 给出n个数,m个询问,每个询问给出一个区间,需要回答这个区间中不同的数的个数 题目 {assign var=“code” value=“DQUERY”} {if KaTeX parse error: Expected 'EOF', got '}' at position 8: par==""}̲ {assign var=pa…locale} {/if} English Vietnamese
这题跟HDU3333差不多吧。 离线的做法很简单,不再说了 以前做过。 主席树的做法就比较暴力了。。 什么是主席树呢。。 其实是某种称号。 在该题中的体现是可持久化的线段树。 对于一个数 如果以前没出现过 就插入到主席树中 否则就删除以前那个。 再插入主席树。 注意,所有的更新和删除都是建立了新的节点来保持其历史状态的。。 对于T[i]我们存的是从1到i区间的不同的数出现了多少个。 然后这棵树是根