将每个序列转换为 Xi=2∑k<iAk+Ai。删除位置 i 后,对后方位置 j,若距离为奇数,其前缀和减少 Ai,元素增加 2Ai;若为偶数,其前缀和增加 Ai,元素减少 2Ai。因此转换值不变,操作只会删除对应位置。
该变换可逆:已知前方元素之和 P,下一元素为 Xi−2P。所以要保留转换后两序列的最长公共子序列。若 LCS 长度为 L,答案为 N+M−2L。
子任务 1 直接枚举实际删除操作的可达状态并比较。状态至多 2N 个,使用有序集合时保守时间上界为 O((2N+2M)(N+M)3)。完整解使用 LCS 动态规划,时间 O(NM),空间 O(M)。
初始转换值绝对值不超过 49995000,以后始终是其子序列。因此恢复出的任一元素绝对值不超过 (2⋅5000−1)49995000<5⋅1011,有符号 64 位整数足够。
Solution written by GPT6.1