A new approach to solve online MO problems

Revision en4, by Alwoosh, 2024-12-25 11:56:01

In the last Educational Round, I implemented next solution for G problem(2043-G - Problem with Queries), and never seen before, solution like this, for online MO problems.

298356157

In the problems, we have to find number of pairs of unequal values in the some range. Also, we have updates, and queries — online.

Firstly, I change our task to find pairs of equal values, and imediatelly think about MO(offline solution of problem). Instead of one supported MO segment, I decided to support 500 MO segments. In the updates, I just update MO segments that have that value inside of segment. And for the second type of queries, firstly I find MO segment that needed less iterations to reach the range from the query.

Update: the solution has been hacked, and I have added a new way to optimize code, if we have a MO segment that needed less than 3000 iterations to reach the range from the query, then we can just pick that MO segment. In another case, if we have less than 500 created MO segments, we create a new segment. If we have create 500 MO segments already and no one don't reached by 3000 iterations, just pick a segment with less iterations(like in the first solution).

298386140

I am curious whether it should pass the tests and about its complexity. Also, have you seen this technique before? Personally, I did not encounter any blogs about this.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en5 English Alwoosh 2024-12-25 12:56:35 0 (published)
en4 English Alwoosh 2024-12-25 11:56:01 497 (saved to drafts)
en3 English Alwoosh 2024-12-25 10:43:51 0 (published)
en2 English Alwoosh 2024-12-25 10:43:18 172
en1 English Alwoosh 2024-12-25 09:37:57 770 Initial revision (saved to drafts)