結果
問題 |
No.2772 Appearing Even Times
|
ユーザー |
|
提出日時 | 2024-05-31 22:18:10 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,267 bytes |
コンパイル時間 | 279 ms |
コンパイル使用メモリ | 82,608 KB |
実行使用メモリ | 174,256 KB |
最終ジャッジ日時 | 2024-12-20 23:52:40 |
合計ジャッジ時間 | 63,007 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 7 TLE * 12 |
ソースコード
import sys, time, random from collections import deque, Counter, defaultdict input = lambda: sys.stdin.readline().rstrip() ii = lambda: int(input()) mi = lambda: map(int, input().split()) li = lambda: list(mi()) inf = 2 ** 61 - 1 mod = 998244353 import string n = input() #桁dp #dp dp = [[[0] * (1024) for _ in range(2)] for _ in range(2)] dp[0][0][0] = 1 for i in range(len(n)): e = [[[0] * (1024) for _ in range(2)] for _ in range(2)] for lessflag in range(2): for zeroflag in range(2): for bit in range(1024): for x in range(10): if lessflag == 0 and x > int(n[i]): continue tlessflag = lessflag | (x < int(n[i])) tzeroflag = zeroflag | (x > 0) if tzeroflag == 0: e[tlessflag][tzeroflag][bit] += dp[lessflag][zeroflag][bit] e[tlessflag][tzeroflag][bit] %= mod else: e[tlessflag][tzeroflag][bit ^ (1 << x)] += dp[lessflag][zeroflag][bit] e[tlessflag][tzeroflag][bit ^ (1 << x)] %= mod dp = e c = 0 for v in n: c ^= 1 << int(v) if c == 0: dp[1][1][0] += 1 print(dp[1][1][0] % mod)