Submit | All submissions | Best solutions | Back to list |
DQUERY - D-query |
English | Vietnamese |
Truy vấn-d
Cho một dãy số n phần tử a1, a2 ... an và một số các truy vấn-d. Một truy vấn-d là một cặp (i, j) (1 ≤ i ≤ j ≤ n). Với mỗi truy vấn-d (i, j), bạn cần trả về số phần tử phân biệt nằm trong dãy con ai, ai+1, ..., aj.
Dữ liệu
- Dòng 1: n (1 ≤ n ≤ 30000).
- Dòng 2: n số a1, a2, ..., an (1 ≤ ai ≤ 106).
- Dòng 3: q (1 ≤ q ≤ 200000), số lượng truy vấn- d.
- Trong q dòng sau, mỗi dòng chứa 2 số i, j biểu thị một truy vấn-d (1 ≤ i ≤ j ≤ n).
Kết quả
- Với mỗi truy vấn-d (i, j), in ra số phần tử phân biệt thuộc dãy con ai, ai+1, ..., aj trên một dòng.
Ví dụ
Dữ liệu 5 1 1 2 1 3 3 1 5 2 4 3 5 Kết quả 3 2 3
Added by: | Jimmy |
Date: | 2008-10-26 |
Time limit: | 1s-1.5s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ERL JS-RHINO NODEJS PERL6 VB.NET |
Resource: | Minesweeper |
hide comments
|
|||||
2025-02-28 17:18:13
The problem can be reduced to KQUERYO (but instead of elements strictly greater than k like in KQUERYO, you want to find elements strictly less than k) by making new array prev where prev[i] represents the previous index arr[i] occurred at. In the case where it's the first occurrence of arr[i] in the array, you can denote prev[i] with a negative number. Then, it becomes a problem of finding the number of elements in [l, r] such that prev[i] < l, or in other words, you want to count only the first occurrence of each number in [l, r]—If prev[i] > l, then another occurence of it must exist in [l, r], meaning it's a duplicate that shouldn't be counted. This sort of problem is straightforward to solve using a wavelet tree or persistent segment tree. Alternatively, you can also use Mo's algorithm to solve the queries offline. KQUERYO: https://www.spoj.com/problems/KQUERYO/ |
|||||
2025-02-03 03:20:58
莫队和树没有关系 但这题可以用树 不信去luogu.com看 |
|||||
2024-12-15 13:55:27
Using map gives TLE but using a vector of frequencies gives AC. |
|||||
2024-09-27 12:50:19
One of the worst problems I faced. After repeated submissions, I was facing TLE. Was optimising the code for no reason, when ultimately it turned out to be an issue of cin vs scanf. Really strict time limit for no reason at all. |
|||||
2024-08-10 11:56:28
simple MO algorithm |
|||||
2024-03-08 23:14:32
AC IN 1E9+7 LET'S GOOOOOOOOOOOOOOOO! |
|||||
2023-07-27 12:41:32
莫队和树没有关系吧(雾 |
|||||
2023-03-15 06:07:16
just use president Tree to solve this |
|||||
2023-03-14 15:47:38
Me too! AC with MO algorithm Tree Is also ok!! They both are tarjin algorihtm Last edit: 2023-03-14 15:48:01 |
|||||
2022-12-03 21:27:43
Solved in one go using your mom |