i'm stuck on this problem
http://lightoj.com:81/volume/problem/1187
forum says there is an O(n) greedy and an nlog(n) solution with BIT/segtree .can you give any hint or idea so i can get closer to solve this.
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 160 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | Dominater069 | 154 |
8 | awoo | 154 |
10 | luogu_official | 151 |
i'm stuck on this problem
http://lightoj.com:81/volume/problem/1187
forum says there is an O(n) greedy and an nlog(n) solution with BIT/segtree .can you give any hint or idea so i can get closer to solve this.
Name |
---|
consider the sample test:
3
0 1 0
fill the leaf nodes of your segment tree by 1 such the the leaves are 1(st=ed=1) 1(st=ed=2) 1(st=ed=3).
scan right to left from your input array.
1st iteration: you have 3 people and 0 people is taller than him so kill (3-0)=3rd person from the tree.
now the tree looks like 1(st=ed=1) 1(st=ed=2) 0(st=ed=3).
2nd iteration: you have 2 people and 1 people is taller than him so kill (2-1)=1st person from the tree.
now the tree looks like 0(st=ed=1) 1(st=ed=2) 0(st=ed=3).
finally find the index(st or ed of the node as they are same) which contain 1.
try by your self.
then you can take help from my code.
How does your method work for the 2nd sample case?
3 0 1 2