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

Автор catlak_profesor_mfb, 11 лет назад, По-английски
  • Проголосовать: нравится
  • +38
  • Проголосовать: не нравится

»
11 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +18 Проголосовать: не нравится

Now test to see how large the N has to be for it to be faster than segment trees ;p Though I have to admit, I didn't think it could be made so compact.

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +35 Проголосовать: не нравится
ans=min(ans,lookup[sblock[t]&(~(((1<<(l-(r1*lg+lg)))-1)<<(r1*lg+(lg<<1)-l)))]+r1*lg+lg);

That looks really nice :)

»
11 лет назад, скрыть # |
Rev. 4  
Проголосовать: нравится 0 Проголосовать: не нравится

You split array into blocks of size , then build sparse table for each block and for all blocks. Am I right?

»
11 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

double post

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

"block" is a sparse table for log(n) blocks of "data". Right? What do "sblock" and "lookup" exactly do?

»
11 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Nice One! But not efficient for large value of N.

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

Read the topic here e-maxx.ru/algo