dquery专题

SP3267 DQUERY - D-query(莫队算法,区间不同数)

题意: 询问区间有多少个不同的数。 思路: 莫队裸题。 十分神奇的算法,我觉得关键就是离线排序,但是左端点的判据是第几块(分块),右端点的判据是大小。就这么一点点小改动,大大减小了复杂度ORZ。 #pragma GCC optimize(2)#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>us

SPOJ 3267 DQUERY——求区间内不重复值的个数

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 su

SPOJ-DQUERY HYSBZ 1878 HH的项链 (线段树/树状数组/莫队/主席树)

1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  Memory Limit: 64 MB   Description HH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一 个问题:某一段贝壳中,包含了多

SPOJ - DQUERY(主席树)

题目链接:https://vjudge.net/problem/SPOJ-DQUERY 题意:询问区间不同数字的个数。 思路:这题莫队,树状数组都可以写,主席树做法:我们需要维护每个数最后一次出现位置,所有最后一次出现位置对整个区间有1的贡献,也就是对每一个数建一棵线段树,如果这个数之前出现过则再建一棵树删除。 #include <cstdio>#include <vector>#inc

SPOJ DQUERY - D-query (莫队算法)

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 th