結果

問題 No.2211 Frequency Table of GCD
ユーザー FromBooska
提出日時 2023-09-01 19:19:04
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 349 ms / 2,000 ms
コード長 841 bytes
コンパイル時間 1,237 ms
コンパイル使用メモリ 81,664 KB
実行使用メモリ 115,936 KB
最終ジャッジ日時 2025-01-03 06:55:32
合計ジャッジ時間 9,738 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

# ABC162Eの考え方を使えるか
# Aの要素をCounter
# k=Mから降順で求める
# k=mとなるのはすべてがmの倍数の個数をべき乗数とた2のべき乗、引く、mの倍数のときのパターン巣

N, M = map(int, input().split())
A = list(map(int, input().split()))

from collections import Counter
counted = Counter(A)
maxA = max(A)
patterns = [0]*(M+1)
mod = 998244353
for k in range(M, 0, -1):
    multiple_count = 0
    deduct = 0
    for j in range(k, maxA+1, k):
        multiple_count += counted[j]
        deduct += patterns[j]
    calc = 0
    if multiple_count > 0:
        calc += pow(2, multiple_count, mod)-1
    calc -= deduct
    #print('k', k, 'multiple_count', multiple_count, 'deduct', deduct, 'calc', calc)
    patterns[k] = calc%mod
    
#print(patterns)

for p in patterns[1:]:
    print(p)
0