The real case work solution for CF2086F, 440+lines and 15kb.

Revision en1, by Sanae, 2025-04-08 15:36:29

Problem

I want to explain the brute force for F.

In the tutorial of F,it said "however, deriving them manually is quite complicated, as there are many situations."

But I consider this problem as a perfect chance to practice case work:

Do the first three letters by case work.

First, whether $$$s_1$$$ is 'a' or 'b' doesn't matter.

We can just record the longest 'ababab' prefix and the value of $$$s_{mid}$$$ ,and do case work. Do two letters $$$x,y$$$ once.

  1. p=1; p is odd number ;p is even number
  2. $$$s_1=s_{mid}$$$,$$$s_1\neq s_{mid}$$$
  3. $$$p=mid-1$$$,$$$p\neq mid-1$$$
  4. $$$x=a$$$,$$$x=b$$$
  5. $$$y=a$$$,$$$y=b$$$

In the $$$p=1$$$,we don't care $$$p=mid-1$$$.

As in the code,there is $$$2\times 2 \times 2+2\times 2\times 2\times 2\times 2=40$$$ cases,handle them one by one and get c++ code in 15kb.

I highly recommend you to read code, and I'm glad you to find my mistakes.

Tags tutorial

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en2 English Sanae 2025-04-08 15:37:00 6 Tiny change: 'mmend you to read [code](ht' -> 'mmend you reading [code](ht'
en1 English Sanae 2025-04-08 15:36:29 1033 Initial revision (published)