CF2117E.Lost Soul
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个长度均为 n 的数组 a 和 b。
你可以进行任意次如下操作:
- 选择一个下标 i(1≤i≤n−1),然后赋值 ai:=bi+1,或者 bi:=ai+1。
在进行这些操作之前,你可以选择一个下标 i(1≤i≤n),然后将 ai 和 bi 从两个数组中删去。这个删除操作至多可以进行一次。
我们称两个长度为 m 的数组 c 和 d 之间的匹配数量为满足 cj=dj 的下标 j(1≤j≤m)的数量。
你的任务是计算通过上述操作可以得到的 a 和 b 的最大匹配数量。
输入格式
输入数据包含多个测试用例。输入数据的第一行包含一个整数 t(1≤t≤104),表示测试用例的个数。
对于每个测试用例:
- 第一行包含一个整数 n(2≤n≤2⋅105),表示数组 a 和 b 的长度。
- 第二行包含 n 个整数 a1,a2,…,an(1≤ai≤n),表示 a 中的元素。
- 第三行包含 n 个整数 b1,b2,…,bn(1≤bi≤n),表示 b 中的元素。
输入数据保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每个测试用例,输出一行一个整数,表示当前测试用例的答案。
输入输出样例
输入#1
10 4 1 3 1 4 4 3 2 2 6 2 1 5 3 6 4 3 2 4 5 1 6 2 1 2 2 1 6 2 5 1 3 6 4 3 5 2 3 4 6 4 1 3 2 2 2 1 3 4 8 3 1 4 6 2 2 5 7 4 2 3 7 1 1 6 5 10 5 1 2 7 3 9 4 10 6 8 6 2 3 6 4 10 5 1 7 9 5 3 2 4 1 5 2 4 5 1 3 7 2 2 6 4 1 3 5 3 1 6 5 1 4 2 5 4 1 3 2 5 3 2 1 5 4
输出#1
3 3 0 4 3 5 6 4 5 2
说明/提示
对于第一个测试用例,我们可以进行如下操作:
- 不进行删除操作。
- 选择下标 3,然后赋值 a3:=b4。数组变为 a=[1,3,2,4],b=[4,3,2,2]。
- 选择下标 1,然后赋值 a1:=b2。数组变为 a=[3,3,2,4],b=[4,3,2,2]。
- 选择下标 1,然后赋值 a2:=b1。数组变为 a=[3,3,2,4],b=[3,3,2,2]。
匹配数量为 3。可以证明这是我们可以得到匹配数量的最大值。
对于第二个测试用例,我们可以进行如下操作:
- 删去下标 5 对应的元素。数组变为 a=[2,1,5,3,4],b=[3,2,4,5,6]。
- 选择下标 4,然后赋值 b4:=a5。数组变为 a=[2,1,5,3,4],b=[3,2,4,4,6]。
- 选择下标 3,然后赋值 a3:=b4。数组变为 a=[2,1,4,3,4],b=[3,2,4,4,6]。
- 选择下标 2,然后赋值 a2:=b3。数组变为 a=[2,4,4,3,4],b=[3,2,4,4,6]。
- 选择下标 1,然后赋值 b1:=a2。数组变为 a=[2,4,4,3,4],b=[4,2,4,4,6]。
- 选择下标 2,然后赋值 b2:=a3。数组变为 a=[2,4,4,3,4],b=[4,4,4,4,6]。
- 选择下标 1,然后赋值 a1:=b2。数组变为 a=[4,4,4,3,4],b=[4,4,4,4,6]。
对于第三个测试用例,可以证明我们无法得到任何匹配,因此答案为 0。
输入解题思路,AI测评打分。不知道怎么写?