問題はこちら
問題概要
以上以下の要素からなる長さの数列のうち, 以下の条件を満たすものの数を求めよ.- 数列の要素はすべて異なる.
思考の流れ
制約がそこそこ大きいのでDPとかじゃなさそう.制約が不一致条件のみなので, を決めた時に条件を満たすの数は同じ.
これを求めることができたら, 答えはそれの倍となる.
と固定する.となる数列の数を求めたい.のとき, これは完全順列(攪乱順列)というものである.完全順列の数の求め方は典型で, 包除原理を用いるものが知られている.
これと同じように考えてみると数列の数は,
これにをかけてやれば答えになる. 階乗や階乗の逆元を前計算しておくと高速に計算できる.