Блог пользователя CrapCoder

Автор CrapCoder, история, 9 лет назад, По-английски

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.

  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

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.