How to proceed after coordinate compression.. Please help.. https://www.spoj.com/problems/POSTERS/ — problem link
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 166 |
2 | maomao90 | 163 |
2 | Um_nik | 163 |
4 | atcoder_official | 161 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | nor | 153 |
9 | Dominater069 | 153 |
How to proceed after coordinate compression.. Please help.. https://www.spoj.com/problems/POSTERS/ — problem link
Name |
---|
There is a comment in the SPOJ page that specifically says:
Coord compression + Brute force = 0.08s
Actually I wanted to know how to do using segment tree and lazy
Similar problem :LightOj 1207. Only difference is that you have to compress the array in this SPOJ one
After compressing the array,build a segment tree of size 2e17.
Updation part is as like as any other lazy propagation but , while pushing up the results, if left child and right child of a node has same value then only the node can have this same value. If left child and right child have different values assigned then you have to assign their parent node with value zero (you can do it differently and then code accordingly).
In the query function,you have to do the same pushing up as you did in the updation part. When you will get a node having value greater then zero,store this node in a set.
And then print the size of the set.
Auto comment: topic has been updated by Jim_Moriarty_ (previous revision, new revision, compare).
...
7sec TL and n is 40000, just try straighforward $$$O(n^2)$$$ maybe