結果
問題 |
No.2867 NOT FOUND 404 Again
|
ユーザー |
|
提出日時 | 2025-08-11 18:16:08 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 1,168 bytes |
コンパイル時間 | 319 ms |
コンパイル使用メモリ | 81,920 KB |
実行使用メモリ | 131,508 KB |
最終ジャッジ日時 | 2025-08-11 18:16:13 |
合計ジャッジ時間 | 4,146 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | RE * 2 |
other | RE * 18 |
ソースコード
import sys MOD = 998_244_353 def solve(): s = sys.stdin.readline().strip() n = list(map(int, s)) # 数字串转数组 L = len(n) # dp[pos][tight][prev2] -> 0..1, 0..99 # 用二维数组滚动:dp[tight][prev2] dp = [[0]*100 for _ in range(2)] dp[1][100] = 1 # 前导占位,不可能出现404 for pos in range(L): new_dp = [[0]*100 for _ in range(2)] for tight in 0, 1: for prev2 in range(100): if dp[tight][prev2] == 0: continue max_digit = n[pos] if tight else 9 for d in range(0, max_digit + 1): new_tight = 1 if (tight and d == max_digit) else 0 new_prev = prev2 % 10 * 10 + d if new_prev == 404: continue new_dp[new_tight][new_prev] = \ (new_dp[new_tight][new_prev] + dp[tight][prev2]) % MOD dp = new_dp ans = 0 for tight in 0, 1: for val in range(100): ans = (ans + dp[tight][val]) % MOD print(ans) if __name__ == '__main__': solve()