結果
問題 |
No.2668 Trees on Graph Paper
|
ユーザー |
![]() |
提出日時 | 2024-03-08 23:15:42 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 672 bytes |
コンパイル時間 | 408 ms |
コンパイル使用メモリ | 82,456 KB |
実行使用メモリ | 848,180 KB |
最終ジャッジ日時 | 2024-09-29 20:39:43 |
合計ジャッジ時間 | 5,119 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 14 MLE * 1 -- * 18 |
ソースコード
N,mod=map(int,input().split()) dp=[[0]*3 for i in range(2*N)] dp[1][2]=1 score=[[0]*3 for i in range(2*N)] score[1][2]=1 for i in range(1,2*N-1): for j in range(3): for k in range(3): if j==2 and k==0: continue dp[i+1][k]+=dp[i][j] dp[i+1][k]%=mod if k<=j: score[i+1][k]+=score[i][j] elif k==1 and j==0: score[i+1][k]+=score[i][j]*(i-1) elif k==2 and j==1: score[i+1][k]+=score[i][j]*i else: score[i+1][k]+=score[i][j]*i*(i-1) score[i+1][k]%=mod result=1 for x in range(1,2*N): result*=x result%=mod for i in range(1,N): result*=score[2*i+1][0] result%=mod print(result)