結果
問題 | No.1531 く2 |
ユーザー | googol_S0 |
提出日時 | 2021-06-04 20:30:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 94 ms / 2,000 ms |
コード長 | 653 bytes |
コンパイル時間 | 408 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 80,128 KB |
最終ジャッジ日時 | 2024-11-19 09:18:00 |
合計ジャッジ時間 | 6,166 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 44 |
ソースコード
N,K=map(int,input().split()) M=70 DP=[[[0]*(M+1) for i in range(M+1)] for j in range(M+1)] DP[0][0][0]=1 mod=998244353 for i in range(1,M+1): for j in range(M): for k in range(j,M): if (K>>(M-i))&1: if (N>>(M-i))&1: DP[i][0][k-j+1]=(DP[i][0][k-j+1]+DP[i-1][j][k])%mod DP[i][j+1][k+1]=(DP[i][j+1][k+1]+DP[i-1][j][k])%mod else: if (N>>(M-i))&1: DP[i][j+1][k+1]=(DP[i][j+1][k+1]+DP[i-1][j][k])%mod DP[i][0][k]=(DP[i][0][k]+DP[i-1][j][k])%mod ANS=0 T=[1] for i in range(M+1): T.append(T[i]*2%mod) for i in range(M+1): for j in range(M+1): ANS+=DP[M][i][j]*T[j]%mod print(ANS%mod)