MathLabs

第5問

nn 人が円形に座っている。合計 nknk 枚の硬貨が必ずしも均等でなく配られている。1回の操作では隣り合う二人の間で硬貨1枚を移す。全員の硬貨枚数を等しくする最小操作回数のアルゴリズムを求めよ。
ステップ 1/5: 不均衡を符号化する
di=ci−k,∑i=1ndi=0d_i=c_i-k,\qquad\sum_{i=1}^nd_i=0
詳しい解説

人を円周上で番号付けし、初期硬貨数を cic_i、di=ci−kd_i=c_i-k とする。総数が nknk なので ∑i=1ndi=0\sum_{i=1}^nd_i=0。番号を付け替えて d1≥0d_1\ge0 とする。