結果
問題 | No.2992 Range ABCD String Query |
ユーザー | Kude |
提出日時 | 2024-12-17 01:01:45 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 1,647 bytes |
コンパイル時間 | 450 ms |
コンパイル使用メモリ | 82,408 KB |
実行使用メモリ | 312,892 KB |
最終ジャッジ日時 | 2024-12-17 01:04:29 |
合計ジャッジ時間 | 138,249 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1,495 ms
94,536 KB |
testcase_01 | AC | 1,350 ms
94,736 KB |
testcase_02 | AC | 2,048 ms
102,112 KB |
testcase_03 | AC | 1,853 ms
101,324 KB |
testcase_04 | AC | 2,173 ms
106,624 KB |
testcase_05 | AC | 1,245 ms
89,288 KB |
testcase_06 | AC | 1,673 ms
95,672 KB |
testcase_07 | AC | 607 ms
81,056 KB |
testcase_08 | AC | 2,333 ms
105,696 KB |
testcase_09 | AC | 1,644 ms
95,156 KB |
testcase_10 | TLE | - |
testcase_11 | TLE | - |
testcase_12 | TLE | - |
testcase_13 | TLE | - |
testcase_14 | TLE | - |
testcase_15 | TLE | - |
testcase_16 | AC | 5,383 ms
277,284 KB |
testcase_17 | TLE | - |
testcase_18 | TLE | - |
testcase_19 | TLE | - |
testcase_20 | AC | 2,386 ms
285,880 KB |
testcase_21 | AC | 2,280 ms
285,552 KB |
testcase_22 | AC | 2,246 ms
285,932 KB |
testcase_23 | AC | 2,188 ms
289,860 KB |
testcase_24 | AC | 2,252 ms
287,612 KB |
testcase_25 | AC | 2,814 ms
311,756 KB |
testcase_26 | AC | 2,762 ms
312,892 KB |
testcase_27 | AC | 2,705 ms
311,808 KB |
testcase_28 | AC | 2,721 ms
311,988 KB |
testcase_29 | AC | 2,834 ms
312,384 KB |
testcase_30 | AC | 4,242 ms
241,160 KB |
testcase_31 | AC | 4,514 ms
249,492 KB |
testcase_32 | AC | 3,881 ms
240,020 KB |
testcase_33 | AC | 4,576 ms
250,428 KB |
testcase_34 | AC | 4,061 ms
244,464 KB |
testcase_35 | AC | 1,767 ms
157,928 KB |
testcase_36 | AC | 1,770 ms
158,964 KB |
testcase_37 | AC | 420 ms
78,332 KB |
testcase_38 | AC | 462 ms
79,524 KB |
testcase_39 | AC | 464 ms
78,052 KB |
testcase_40 | AC | 852 ms
84,980 KB |
ソースコード
INF = 10 ** 9 def e(): return (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) def op(a, b): a00, a01, a02, a03, a11, a12, a13, a22, a23, a33 = a b00, b01, b02, b03, b11, b12, b13, b22, b23, b33 = b return ( a00 + b00, min(a00 + b01, a01 + b11), min(a00 + b02, a01 + b12, a02 + b22), min(a00 + b03, a01 + b13, a02 + b23, a03 + b33), a11 + b11, min(a11 + b12, a12 + b22), min(a11 + b13, a12 + b23, a13 + b33), a22 + b22, min(a22 + b23, a23 + b33), a33 + b33 ) c2mat = [ (0,0,0,0,1,1,1,1,1,1), (1,0,0,0,0,0,0,1,1,1), (1,1,0,0,1,0,0,0,0,1), (1,1,1,0,1,1,0,1,0,0) ] def solve(): n, q = map(int, input().split()) s = [ord(c) - 65 for c in input()] lg = (n - 1).bit_length() sz = 1 << lg d = [(1,) * 10] * (2 * sz) for i in range(n): d[sz + i] = c2mat[s[i]] for i in range(sz - 1, 0, -1): d[i] = op(d[i<<1], d[i<<1|1]) for _ in range(q): t, x, c = input().split() if t == '1': x = sz + int(x) - 1 c = ord(c) - 65 d[x] = c2mat[c] x >>= 1 while x: d[x] = op(d[x<<1], d[x<<1|1]) x >>= 1 else: l = sz + int(x) - 1 r = sz + int(c) sl = e() sr = e() while l < r: if l & 1: sl = op(sl, d[l]) l += 1 if r & 1: r -= 1 sr = op(d[r], sr) l >>= 1 r >>= 1 print(op(sl, sr)[3]) solve()