結果
| 問題 |
No.2313 Product of Subsequence (hard)
|
| ユーザー |
convexineq
|
| 提出日時 | 2023-05-25 10:59:59 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,366 ms / 4,000 ms |
| コード長 | 769 bytes |
| コンパイル時間 | 159 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 147,456 KB |
| 最終ジャッジ日時 | 2024-12-24 05:26:53 |
| 合計ジャッジ時間 | 15,617 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
import sys
readline = sys.stdin.readline
n,k = map(int,readline().split())
*a, = map(int,readline().split())
MOD = 998244353
from math import gcd
from collections import defaultdict
da = defaultdict(int)
for ai in a:
da[gcd(ai,k)] += 1
def get(ai,num):
d = defaultdict(int)
d[1] = 1
for _ in range(num):
nd = d.copy()
for r,v in d.items():
nr = gcd(ai*r,k)
nd[nr] += v
nd[nr] %= MOD
d = nd
return d
d = defaultdict(int)
d[1] = 1
for ai,num in da.items():
nd = defaultdict(int)
for r,v in get(ai,num).items():
for rr,vv in d.items():
nr = gcd(r*rr,k)
nd[nr] += v*vv
nd[nr] %= MOD
d = nd
ans = d[k] - int(k==1)
print(ans%MOD)
convexineq