結果
問題 | No.1521 Playing Musical Chairs Alone |
ユーザー | nasubi24 |
提出日時 | 2021-05-28 21:42:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 721 ms / 2,000 ms |
コード長 | 754 bytes |
コンパイル時間 | 212 ms |
コンパイル使用メモリ | 82,168 KB |
実行使用メモリ | 78,080 KB |
最終ジャッジ日時 | 2024-11-07 09:13:21 |
合計ジャッジ時間 | 10,134 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 |
ソースコード
n,k,l=map(int,input().split()) dp=[[[0]*n for _ in range(22)] for z in range(n)] for i in range(n): dp[i][0][i]=1 mod=10**9+7 for i in range(n): for j in range(1,l+1): dp[i][1][(j+i)%n]=1 for j in range(1,21): for i in range(n): for l in range(n): for m in range(n): dp[i][j+1][l]+=dp[i][j][m]*dp[m][j][l] dp[i][j+1][l]%=mod s=bin(k)[2:] ans=[[0]*n for _ in range(len(s)+1)] ans[0][0]=1 for i in range(len(s)): if s[-1-i]=="1": for j in range(n): for k in range(n): ans[i+1][k%n]+=ans[i][j]*dp[j][i+1][k] ans[i+1][k%n]%=mod else: for j in range(n): ans[i+1][j]=ans[i][j] for i in ans[-1]: print(i)