競プロをはじめた家事手伝いロボットのブログ

競技プログラミングをしている家事手伝いロボットのブログです

yukicoder April Fool Contest 2019 N 解説 ざっくり

ざっくりと 公式から解説が出ていますけど何かです

2.5色じゃなかったら?

色がc色ある(cは正整数)とき、包除原理を使ったりして答えを求めていたと思います

具体的に言うとN頂点のほうでp色使う場合の数を包除原理で求めてそれぞれ(c-p)Mをかける みたいなことをしたはずです

もっともっと具体的に言うと、N頂点のほうでp色使う場合の数は、cCp pN - cC(p-1) pC(p-1)(p-1)N ±...のような式になっていたはずです。
この式は、p>cのとき、cCpなどの計算のどこかで"0をかける"ことになり、その場合の数は0になっていました。 なので、pはcによらず1からNまで動かしても正しい答えが出ていたのです。

2.5色なら?

上の、pを1からNまで動かす方法はcの値によらず、一定の四則演算のみで構成されていました。

pが1からNまで動くのも、N頂点を独立に彩色するのにN色より多く使えるわけがないのでcに依存しなさそうです。

なので、ここで c=2.5 としてしまっても何も問題がないはずです。そして、今私たちはF_(109+7)で生きているので、それはc=500000006のときの答えと違わないはずです。(確かめてみることでこれはより確信に近づきます)

これと同様の考え方によって、-1 - 彩色や、√2 - 彩色でも(√2はどちらを正と定めるかで一悶着ありますが)考えることができます。

F_pは面白いですね!