Restate the Objective
Count the complement, reframe the object, or decompose the condition โ three restructurings that turn stuck problems into easy ones.
Restate the Objective
When a problem feels hard, the objective as stated is often the obstacle. Three restructurings solve a huge share of stuck problems.
1. Count the complement
"Count arrays that avoid some property" is usually brutal directly, but:
(total objects) โ (objects that violate)
is often trivial, because "violate" is a much simpler condition to model than "avoid everywhere".
2. Reframe the object
"Maximum number of non-overlapping intervals" is the same as "minimum number of intervals to remove so none overlap". "Minimum operations to make all equal" may be "n โ (largest class of equal elements)". Many problems hide an equivalent formulation whose structure is friendlier.
3. Decompose the condition
A condition like "no two chosen elements are adjacent" couples pairs of decisions. Decompose by position: decide elements left to right, and the coupling shrinks to "did I pick the previous one?" โ one bit of state.
When to restate
If you have a correct-looking approach but cannot see how to handle one clause of the objective, that clause is the signal: restate so the clause becomes the whole problem (complement), disappears (reframe), or shrinks to local state (decompose).