結果
| 問題 | No.3782 Synchronized Subsequences |
| コンテスト | |
| ユーザー |
kidodesu
|
| 提出日時 | 2026-11-05 17:28:05 |
| 言語 | PyPy3 (8.0.1 + ACL) |
| 結果 |
TLE
不安定
|
| 実行時間 | - |
| コード長 | 1,191 bytes |
| 記録 | |
| コンパイル時間 | 96 ms |
| コンパイル使用メモリ | 64,252 KB |
| 実行使用メモリ | 153,592 KB |
| 最終ジャッジ日時 | 2026-11-05 17:29:18 |
| 合計ジャッジ時間 | 64,783 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 39 TLE * 1 |
ソースコード
from atcoder.segtree import SegTree
def main():
n = int(input())
P = list(map(lambda x: int(x)-1, input().split()))
Q = list(map(lambda x: int(x)-1, input().split()))
st0 = SegTree(lambda a, b: max(a, b), 0, [0]*n*n)
st1 = SegTree(lambda a, b: max(a, b), 0, [0]*n*n)
dp = [1] *n*n
dp0 = [0] *n*n
dp1 = [0] *n*n
for pi in range(n):
st0_ = SegTree(lambda a, b: max(a, b), 0, [0]*n)
st1_ = SegTree(lambda a, b: max(a, b), 0, [0]*n)
for qi in range(n):
p, q = P[pi], Q[qi]
dp[pi*n+qi] = max(st0.prod(qi*n+p, qi*n+n), st1.prod(qi*n, qi*n+p))+1
a = dp[pi*n+qi]
st0_.set(q, a)
st1_.set(q, a)
x, y = st0_.prod(q+1, n), st1_.prod(0, q)
#print(p, q, x, y, a, "here", *[st1_.get(i) for i in range(n)])
st0.set(qi*n+p, x)
st1.set(qi*n+p, y)
if 0:
for i in range(n):
print(dp[i*n: i*n+n])
print()
for i in range(n):
print(dp0[i*n: i*n+n])
print()
for i in range(n):
print(dp1[i*n: i*n+n])
return max(dp)
for _ in range(int(input())):
print(main())
kidodesu