結果

問題 No.3040 Aoiスコア
ユーザー 👑 loop0919
提出日時 2025-02-28 22:04:33
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 175 ms / 1,000 ms
コード長 782 bytes
コンパイル時間 152 ms
コンパイル使用メモリ 82,572 KB
実行使用メモリ 79,544 KB
最終ジャッジ日時 2025-02-28 22:04:37
合計ジャッジ時間 3,058 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import Counter

MOD = 998244353

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

q = S.count("?")

graph = [[] for _ in range(N)]

for i in range(M):
    u, v = map(int, input().split())
    graph[u - 1].append(v - 1)
    graph[v - 1].append(u - 1)

ans = 0

for i in range(N):
    if S[i] not in ("o", "?"):
        continue
    
    _q = q if S[i] == "o" else q - 1
    cnt = Counter(S[j] for j in graph[i])
    ans += cnt["a"] * cnt["i"] * pow(26, _q, MOD)
    ans %= MOD
    if _q >= 1:
        ans += cnt["?"] * cnt["i"] * pow(26, _q - 1, MOD)
        ans %= MOD
        ans += cnt["a"] * cnt["?"] * pow(26, _q - 1, MOD)
        ans %= MOD
    
    if _q >= 2:
        ans += cnt["?"] * (cnt["?"] - 1) * pow(26, _q - 2, MOD)
        ans %= MOD

print(ans)
0