問題一覧 >
教育的問題
No.2445 奇行列式
レベル :
/ 実行時間制限 : 1ケース 3.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ :
/
解いたユーザー数 25
作問者 : 👑
p-adic
/ テスター :
Shirotsume
問題文最終更新日: 2023-07-30 13:10:44
注意
この問題の実行時間制限は3000[ms]です。
問題文
入力に 2 個の正整数 N と B と、非負整数係数 N 次正方行列 A が与えられます。
N 以下の各正整数 i,j に対し、A の (i,j) 成分を Ai,j と置きます。
N 次奇置換 σ 全体をわたる ∏i=1NAi,σ(i) の総和を B で割った余りを求めてください。
以下、奇置換について知らない人向けの説明をします。(クリックで開く)
正整数 n に対し、n 次の置換とは大雑把には n 以下の正整数をシャッフルする関数のことです。より正確には以下のように定義されます:
定義(置換)
n 以下の正整数全体の集合を In と置く。n 次の置換とは、 In から In への全単射な写像である。
a を n 次の置換とします。a が互換であるとは、大雑把には a がちょうど 2 つの数を入れ替えるということです。より正確には、以下を満たす n 以下の正整数 i と j が存在するということです:
- i=j である。
- a(i)=j である。
- a(j)=i である。
- n 以下の任意の正整数 k に対し、k=i かつ k=j ならば、a(k)=k である。
互換を用いて、偶置換と奇置換という概念を以下のように定めます:
- 偶数個の互換の合成で表せる n 次の置換を、n 次の偶置換と呼ぶ。
- 偶数個の互換の合成で表せない n 次の置換を、n 次の奇置換と呼ぶ。
ただし互換 0 個の合成は恒等置換として定義されます。従って恒等置換は偶置換です。
入力
入力は次の形式で標準入力から 1+N 行で与えられます:
- 1 行目に N,B が半角空白区切りで与えられます。
- N 以下の各正整数 i に対し、1+i 行目に A の第 i 行の各成分が半角空白区切りで与えられます。
N B
A1,1 ⋯ A1,N
⋮
AN,1 ⋯ AN,N
制約
入力は以下の制約を満たします:
- N は 1≤N≤20 を満たす整数である。
- B は 1≤B≤109 を満たす整数である。
- N 以下の任意の正整数 i,j に対し、Ai,j は 0≤Ai,j≤1018 を満たす整数である。
出力
N 次奇置換 σ 全体をわたる ∏i=1NAi,σ(i) の総和を B で割った余りを求めてください。
最後に改行してください。
サンプル
サンプル1
入力
1 2
3
出力
0
N=1 次の置換は恒等置換に限られ、恒等置換は偶置換です。従って求める総和は 0 であり、0 を B=2 で割った余りは 0 です。
サンプル2
入力
2 3
1 2
3 1
出力
0
2 次の置換は恒等置換と互換 (1,2) の 2 つがあります。前者は偶置換であり後者は奇置換であるので、求める総和は
A1,2A2,1=2×3=6
です。6 を B=3 で割った余りは 0 です。
サンプル3
入力
3 10
1 2 3
4 5 6
7 8 9
出力
5
3 次の置換は 6 つあります。そのうち奇置換は互換 (1,2) と (1,3) と (2,3) の 3 つあるので、求める総和は
A1,2A2,1A3,3+A1,3A2,2A3,1+A1,1A2,3A3,2=2×4×9+3×5×7+1×6×8=72+105+48=225
です。225 を B=10 で割った余りは 5 です。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。