给定长度为 n 的数组 a 和颜色数组 b,初始保证相同值的元素颜色相同。一次操作可对所有值等于某 v 的位置翻转颜色(0↔1)。要求最少操作次数,使最终 b 为回文。
对称位置 (i,j=n+1−i) 且 ai=u,;aj=v,操作后需 bi⊕xu=bj⊕xv 其中 xu,xv∈0,1 分别表示对值为 u,v 的组是否翻转。即约束 xu⊕xv=bi⊕bj. 建立一个图,节点为不同的 a 值,边 (u,v) 带权 d=bi⊕bj。求在每个连通块中,满足所有异或约束的 x 向量,使得翻转次数 ∑xu 最少。
给定一个长度为 n 的数组a1,a2,…,an,其中每个元素初始被染上一种颜色,用一维数组 b1,b2,...,bn 表示颜色,且 bi∈0,1;
初始时,对于任意满足 ai=aj 的位置,有 bi=bj ;
你可以对数组执行以下操作任意次:
选择一个元素 ai ,对所有满足 aj=ai 的位置,将 bj 由 0 变为 1 或由 1 变为 0;
请问使得数组 b 成为回文数组所需的最少操作次数。
【回文数组】一个数组被称作 回文数组,当且仅当这个数组从左住右读和从右往左读是相同的。
第一行输入一个整数 n(1≦n≦2×105) ,表示数组长度;
第二行输入 n 个整数 ai,a2,...,an(1≦ai≦n),表示数组元素;
第三行输入 n 个整数 b1,b2,bn∈0,1 ,表示初始染色数组。
在一行输出一个整数,表示将数组 b 变为回文数组所需的最少操作次数。
输入
4
1 2 3 2
0 1 0 1
输出
1
说明
选择所有 aj=2 的元素操作后数组变为 {0,0,0,0} 满足条件。