CF756A Pavel and barbecue

题目描述

Pavel 在烤肉。 共有 $n$ 串烤肉排成一排,各自在 $n$ 个位置中的一个。Pavel 希望每一串烤肉的每一面都能在每一个位置上烤过一次。 Pavel 有一个全排列 $p$ 和一个长为 $n$ 的 0/1 序列 $b$。Pavel 每一步将位于 $i$ 的串串移到 $p_i$ 处。同时,如果 $b_i=1$,那么 Pavel 将反转这个串串。 很不幸,不是每一对 $p$ 和 $b$ 都满足要求,Pavel 想知道最少修改多少个现有的 $p$ 和 $b$ 中的数才能满足自己的目的。注意修改后的序列也要满足要求。 易证这样的 $p$ 和 $b$ 对于所有的 $n$ 都是存在的。

输入格式

第一行一个正整数 $n$,烤串的数量。 第二行 $n$ 个正整数,分别表示 $p_1,p_2,\cdots,p_n$。 第三行 $n$ 个正整数,分别表示 $b_1,b_2,\cdots,b_n$。

输出格式

一行一个正整数,表示最小的操作次数。 【数据规模与约定】 $1\le p_i\le n\le 2\times 10^5$,$b_i\in \{0,1\}$

说明/提示

In the first example Pavel can change the permutation to $ 4,3,1,2 $ . In the second example Pavel can change any element of $ b $ to $ 1 $ .