AtCoder Regular Contest 151 B問題 A<AP
問題
提出解答
問題の概要
の順列 が与えられる.
以下の条件を共に満たす長さ の整数列 の数を求めよ.
- 各項は 以上 以下の整数
- とすると, は より辞書順で小さい.
制約
- は の順列.
解法
各項が 以上 以下である長さ の整数列全体の集合 とする.
の部分集合 を
とする. このとき, は の分割になることに注意する.
求めるべきは である. ここで, と の間には次のような全単射がある.
よって, である.
以上から, より, さえ求められれば,
より求められることができる.
とする. であることの必要十分条件は
である. この 個の等式をまとめると, の分割を としたとき,
である.
よって, によって を決定できるので, である.
したがって,
である.
の分割を は以下で定義される無向グラフ の連結成分に対応する.
よって, このグラフ における連結成分の個数を求めることになり, 計算量は 時間で求めることが出来る.