niklasb's blog

By niklasb, 10 years ago, In English

Can somebody describe their solution to http://codeforces.net/gym/100519/problem/I ? Somehow I can't shake the feeling that it's enough to always multiply with 2, but I cannot substantiate my intuition to turn this into an algorithm.

  • Vote: I like it
  • +15
  • Vote: I do not like it

»
10 years ago, # |
Rev. 2   Vote: I like it +10 Vote: I do not like it

spoiler

  • »
    »
    10 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    The first one is more along the lines of what I was thinking :) The second idea is magical.

»
10 years ago, # |
Rev. 5   Vote: I like it +26 Vote: I do not like it

It became one of my favourite problems few days ago :)! Indeed, we will use just multiplying by 2. Consider fraction . If we have a fraction f, we multiply it by 2 and then receive information ">" we know that and if we receive "<", we know that . Inductively if we receive informations "<<>><><" and we change each "<" to "1" and ">" to "0" (unless p! = 2 we can't receive "=") we got a prefix of binary representation of f (following "0."), so "<<>><><" changes to "0011010" and we know that . Using 40 questions we can get approximation of with error at most 2 - 40, but if and are potential starting fractions we know that , so this precision is sufficient to uniquely determine starting fraction :)!

»
10 years ago, # |
  Vote: I like it 0 Vote: I do not like it

A wise man.^_^