ありがとうございます本当に
A - 01 Matrix Again
これです。この操作によって、自然と条件を満たす形が生まれます。
なお、ナイーブに処理を書くとO(N^2)ですが、まだ総和がMではない行をキューで管理することによって高速化ができます(というのは後付で、実際のところは重複して同じところに置かないようにするためにかいた)。
条件で絶対に配置しないといけない値に重複しておかないようにチェックする必要があるためこれに二分探索を使用し、結果として計算量としてはO(NMlog(M))で、十分高速に解くことができます。定数倍が結構重そうだったのがよくわかってないけど...
B - Simple Math 4
2^M - 2^Kの2進数表記の形と、筆算の形から公式解説と似たような帰着を得たものの、僕が得た形は以下の誤った式。筆算から着想を得ているがゆえに、数え間違えから謎の1が出てきてしまい答えが合いませんでした。悲しい。
2 ^ n ≡ 2 ^ n + (-m + k + 1) (mod (2^M - 2^K))