yukicoder No.906 Y字グラフ
問題
$K = N - 4 \ge 0$ が与えられる。 自然数の組 $(a, b, c)$ であって $a \le b \le c$ かつ $a + b + c = K$ なものの数を数えよ。
考察過程
- グラフは忘れてよい。数え上げの問題
- ${} _ {K + 2} C _ 2$ ですねと思ったら違った。グラフの同型性から $a \le b \le c$ の制約が入るため
- 次に分けてそれぞれ数えればよい
- $a = b = c$ なもの
- $a = b \ne c$ なもの
- $a \ne b \land b \ne c \ne a$ なもの
- $n$ が大きいので ${} _ n C _ r$ の階乗がしんどい問題がある
- これ嘘。$r$ が小さいため
-
(1.) は自明。$3 K$ かどうかだけ - (2.) は? $c \ne K$ であって $K - c$ が偶数なものを数える
- (3.) は一番厳しそうだな。どうするの
- $a \lt b \lt c$ なものを数えるのと同じ。差分だけ見るのはどうか?
- つまり $3a + 2b’ + c’ = K$ な $(a, b, c)$ を数える
- すぐには出てこない。OEIS したさがあるが……
- (ここまで20分)
- $a \lt b \lt c$ なものを数えるのと $a \le b \le c$ なものを数えるのは、何か違いがありますか?
- 順序の制約なしの場合の全体の数が出てるので、そこから (1.) と (2.) の分引いて $3!$ とかで割れば (3.) が出ますね
- 解けたでしょ。実装します
- (ここまで22分)
- (2.) について確認。$K = (0, 1, 2, 3, 4, 5, \dots)$ のとき $a \le b \le c$ を仮定してその数 $(1, 1, 2, 1, 3, 3, \dots)$
- $3$ の倍数のとき (1.) の場合を巻き込んでしまうね
- まとめれる? (2.) は $3$ 回数えられるけど (1.) は $1$ 回だけなのでまとめることはできません
- バグった
- 修正できた。(2.) の式を間違い
- AC です
- (ここまで32分)
解法
次の $3$ つは容易に計算できる:
- 自然数の組 $(a, b, c)$ かつ $a + b + c = K$ なものの数
- 自然数の組 $(a, b, c)$ かつ $a + b + c = K$ であって $a = b = c$ なものの数
- 自然数の組 $(a, b, c)$ かつ $a + b + c = K$ であって $a = b \ne c$ なものの数
その結果から目的のものの数はすぐに出る。 $O(1)$。
メモ
- OEIS できるらしい: http://oeis.org/A001399