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