結果

問題 No.3782 Synchronized Subsequences
コンテスト
ユーザー kidodesu
提出日時 2026-11-05 17:38:10
言語 PyPy3
(8.0.1 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 2,100 ms / 3,000 ms
+ 869µs
コード長 846 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 79 ms
コンパイル使用メモリ 64,580 KB
実行使用メモリ 128,488 KB
最終ジャッジ日時 2026-11-05 17:39:00
合計ジャッジ時間 47,491 ms
ジャッジサーバーID
(参考情報)
judge7_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 40
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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()))
    st = SegTree(lambda a, b: max(a, b), 0, [0]*2*n*n)
    #st1 = SegTree(lambda a, b: max(a, b), 0, [0]*n*n)
    ans = 0
    N = n*n
    for pi in range(n):
        st_ = SegTree(lambda a, b: max(a, b), 0, [0]*2*n)
        for qi in range(n):
            p, q = P[pi], Q[qi]
            a = st.prod(2*qi*n+p, 2*qi*n+n+p)+1
            ans = max(ans, a)
            st_.set(q, a)
            st_.set(n+q, a)
            x, y = st_.prod(q+1, n), st_.prod(n, n+q)
            #print(p, q, x, y, a, "here", *[st1_.get(i) for i in range(n)])
            st.set(2*qi*n+p, x)
            st.set(2*qi*n+n+p, y)
    return ans

for _ in range(int(input())):
    print(main())
0