timeisvaccum's blog

By timeisvaccum, history, 3 hours ago, In English

Hi everyone,

I was able to think the solution for E. Cyclic Balance, but the $$$O(1)$$$ constraints in the editorial specifically $$$K \ge \lceil (L_0 + L_1 - c) / 3 \rceil$$$ felt like magic. I wanted to see if I could derive this exact formula from first principles without relying on combinatorial guessing. I hope this perspective helps someone else too.

1. The Matrix (Flow Conservation)

Instead of looking at the string as a 1D array of characters, let's view it as a directed walk on a graph with two nodes: State 0 and State 1. Because the string is cyclic, it forms a closed loop. By basic flow conservation, the number of times we enter a node must exactly equal the number of times we leave it. Therefore, the number of $$$01$$$ transitions must perfectly equal the number of $$$10$$$ transitions. Let’s call this count $$$c$$$.

We can now map any cyclic binary string to a symmetric adjacency matrix $$$M$$$:

$$$M = \begin{bmatrix} c_{00} & c \\ c & c_{11} \end{bmatrix}$$$

2. The Target State

What does a "cyclically balanced" string look like? It is a perfectly unbiased, maximum entropy state where every transition occurs exactly $$$K$$$ times. Our goal is to reach this target matrix $$$M^*$$$:

$$$M^* = \begin{bmatrix} K & K \\ K & K \end{bmatrix}$$$

The total length of any string is the sum of all elements in its matrix. For our starting string, Length = $$$c_{00} + c_{11} + 2c$$$. Notice that $$$c_{00} + c_{11}$$$ is exactly the Trace of our matrix, $$$\text{Tr}(M)$$$. So, initial length = $$$\text{Tr}(M) + 2c$$$.

3. The Operations (Gradient Steps)

We want to reach $$$M^*$$$ with the minimum number of insertions. Think of this as minimizing a loss function by taking discrete steps in our state space. Let's define the two fundamental insertion operations available to us:

  • Operation X (The Cross-Injector): Example: Inserting '1' into a '00' block makes it '010'.
    • Effect: Destroys one $$$00$$$ transition, creates a $$$01$$$ and a $$$10$$$.
    • Matrix update: $$$c$$$ increases by 1. $$$\text{Tr}(M)$$$ decreases by 1.
  • Operation Y (The Trace-Expander): Example: Inserting '0' into a '01' block makes it '001'.
    • Effect: Destroys one $$$01$$$, creates a $$$00$$$ and a $$$01$$$.
    • Matrix update: $$$c$$$ remains unchanged. $$$\text{Tr}(M)$$$ increases by 1.

4. Magic!!!

To transform our starting matrix $$$M$$$ into the target matrix $$$M^*$$$, suppose we apply $$$x$$$ Cross-Injectors and $$$y$$$ Trace-Expanders. We can set up a simple linear system for our final state:

  • Matching the cross-edges: Our initial $$$c$$$, plus the $$$x$$$ operators, must reach $$$K$$$.
$$$c + x = K \implies x = K - c$$$
  • Matching the Trace: Our initial $$$\text{Tr}(M)$$$, minus $$$x$$$ (since operation $$$X$$$ destroys trace), plus $$$y$$$ (operation $$$Y$$$ builds trace), must reach the target trace of $$$2K$$$.
$$$\text{Tr}(M) - x + y = 2K$$$

Substitute $$$x$$$ into the second equation:

$$$\text{Tr}(M) - (K - c) + y = 2K$$$
$$$y = 3K - (\text{Tr}(M) + c)$$$

Here is the crucial constraint: we cannot perform a negative number of insertions. Therefore, $$$y$$$ must be $$$\ge 0$$$.

$$$3K - (\text{Tr}(M) + c) \ge 0$$$
$$$3K \ge \text{Tr}(M) + c$$$

Now, let's translate this back to the variables we track in the string. The total number of zeros is $$$L_0 = c_{00} + c$$$, and ones is $$$L_1 = c_{11} + c$$$. Their sum is $$$L_0 + L_1 = c_{00} + c_{11} + 2c = \text{Tr}(M) + 2c$$$. This means $$$\text{Tr}(M) = L_0 + L_1 - 2c$$$.

Substitute this back into our inequality:

$$$3K \ge (L_0 + L_1 - 2c) + c$$$
$$$3K \ge L_0 + L_1 - c$$$

And there it is. The mysterious third bounding constraint from the editorial is simply a non-negativity constraint ($$$y \ge 0$$$) on our basis vectors when projecting our initial graph state onto the target positive semi-definite matrix.

I think this must have provided a satisfying alternative way to think about the problem!

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

»
3 hours ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by timeisvaccum (previous revision, new revision, compare).