$$ \def\bra#1{\mathinner{\left\langle{#1}\right|}} \def\ket#1{\mathinner{\left|{#1}\right\rangle}} \def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}} $$

◇◇ref003:Summer Festival Contest 2018 - E : 石積み (Pyramid Piling)◇◇


☆問題URL

https://beta.atcoder.jp/contests/summerfes2018-div1/tasks/summerfes2018_e

☆問題の概要

石を$N$次元,$N-1$次元の三角形に積む。一辺が$s_1$の$N$次元三角形と一辺が$s_2$の$N-1$次元三角形が同じ数の石を必要とするような$s_1,s_2$の組み合わせを一つ見つけて出力せよ。

☆解法

正三角形の形に石を積んだときに必要な石の数は三角数と呼ばれる。三角数は$N$次元に拡張することができて、一辺が$M$の$N$次元三角形を作るのに必要な石の数は $_{M+N-1}C_N$ と表せる。これを使えば $$_{s_1+N-1}C_N=_{s_2+N-2}C_{N-1}$$ 変形して $$\frac{(s_1+N-1)!}{(s_1-1)!N!}=\frac{(s_2+N-2)!}{(s_2-1)!(N-1)!}$$ となる。 $(s_1,s_2)=(N,N+1)$であれば、両辺$$\frac{(2N-1)!}{N!(N-1)!}$$となってこれを満たす。

☆反省

コンテスト中にいくつかの$N$で実験すれば分かっていたのかもしれない。

戻る