JOI 2007 本戦 E - 最軽量のモビール
モビールは二分木とみなせるので、部分モビール(=部分木)や子モビールなど、木に類似した言葉を使うことにする。また、おもりも1頂点のみのモビールとみなす。
補題: 部分モビールMが与えられたとし、Mの比をp:qとする。また、a,b∈Nが与えられたとし、Mの左の子モビールが成立する重さの集合がaの正の倍数の集合であり、右の子モビールが成立する重さの集合がbの正の倍数の集合であるとする。このとき、Mが成立する重さの集合はab(p+q)/gcd(ap,bq)の正の倍数の集合である。
証明: 与えられた条件より、Mが成立するのはk,l∈Nが存在してp⋅ak=q⋅blが成り立つときであり、またその時に限る。一次不定方程式の一般解を考えると、s∈Nが存在してk,lは
k=gcd(ap,bq)bqs, l=gcd(ap,bq)aps
と表され、Mの重さは
ak+bl=gcd(ap,bq)ab(p+q)s
となる。逆に、ab(p+q)/gcd(ap,bq)の倍数であるような重さに対しては、k,lを上のように定めればp⋅ak=q⋅blが成り立ってモビールが成立する。□
末端、つまりおもりに関する条件は「1の倍数であること」なので、補題より再帰的にモビール全体が成立する重さが求まることになる。