#P680. 交换排列

交换排列

题目描述

给定一个 11nn 的排列 p1,p2,,pnp_1,p_2,\dots,p_n,再给定 mm 种交换操作,每种操作由两个位置 ai,bia_i,b_i 组成,表示可以将排列上第 aia_i 个位置上的数字与第 bib_i 个位置上的数字交换。

请问至少需要几步交换操作,才能将这个排列变成 1,2,,n1,2,\dots,n?保证解法一定存在且不会超过 1313 步。

输入格式

  • 第一行:两个整数 nnmm
  • 第二行:nn个整数表示 p1p_1pnp_n
  • 第三行到第m+2m+2行:第 i+1i+1 行有两个整数表示 aia_ibib_i

输出格式

单个整数:表示最少需要多少次交换

3 2
2 1 3
1 3
2 3
3

数据范围

  • 1n121\leq n\leq 12
  • 1m451\leq m\leq 45
  • 1p1,,pnn1\leq p_1,\dots,p_n\leq n
  • 1ai,bin1\leq a_i, b_i\leq n
  • 保证答案不超过1313