2019年5月19日日曜日

JOI 2007 本戦 E - 最軽量のモビール

JOI 2007 本戦 E - 最軽量のモビール

モビールは二分木とみなせるので、部分モビール(=部分木)や子モビールなど、木に類似した言葉を使うことにする。また、おもりも1頂点のみのモビールとみなす。

補題: 部分モビールMMが与えられたとし、MMの比をp:qp:qとする。また、a,bNa, b \in {\mathbb N}が与えられたとし、MMの左の子モビールが成立する重さの集合がaaの正の倍数の集合であり、右の子モビールが成立する重さの集合がbbの正の倍数の集合であるとする。このとき、MMが成立する重さの集合はab(p+q)/gcd(ap,bq)ab(p+q)/\gcd(ap, bq)の正の倍数の集合である。

証明: 与えられた条件より、MMが成立するのはk,lNk, l \in {\mathbb N}が存在してpak=qblp\cdot ak = q \cdot blが成り立つときであり、またその時に限る。一次不定方程式の一般解を考えると、sNs \in {\mathbb N}が存在してk,lk, l

k=bqgcd(ap,bq)s, l=apgcd(ap,bq)s k = \frac{bq}{\gcd(ap, bq)}s, \ l = \frac{ap}{\gcd(ap, bq)}s

と表され、MMの重さは

ak+bl=ab(p+q)gcd(ap,bq)sak + bl = \frac{ab(p+q)}{\gcd(ap, bq)} s

となる。逆に、ab(p+q)/gcd(ap,bq)ab(p+q)/\gcd(ap, bq)の倍数であるような重さに対しては、k,lk, lを上のように定めればpak=qblp\cdot ak = q \cdot blが成り立ってモビールが成立する。□

末端、つまりおもりに関する条件は「11の倍数であること」なので、補題より再帰的にモビール全体が成立する重さが求まることになる。