编程题
### 问题描述 有一个长度为 $n$ 的数字字符串 $s$ ,下标从 $0$ 开始。 给定 $k$ 种交换操作,其中第 $i$ 种操作包含两个整数 $x_i, y_i$,执行第 $i$ 种操作之后,会导致 $s_{x_i}$ 与 $s_{y_i}$ 交换位置。 请问能否通过有限次的操作次数将 $s$ 变为一个不下降字符串,如果可以输出最少操作次数,反之输出 `-1`。 ### 输入格式 第一行输入一个正整数 $n$,表示字符串 $s$ 的长度。 第二行输入一个长度为 $n$ 只由数字构成的字符串 $s$。 第三行输入一个整数 $k$,表示操作种类的数量。 接下来 $k$ 行,每行两个整数,其中第 $i$ 行表示第 $i$ 种操作的两个参数 $x_i, y_i$。 ### 输出格式 一行一个整数,如果可以通过有限次操作将 $s$ 变为不下降字符串,则输出最小操作次数,反之输出 `-1`。 ### 样例输入 ``` 5 10234 3 1 0 2 0 3 0 ``` ### 样例输出 ``` 1 ``` ### 数据范围 对于 $100$% 的数据,$1 \leq n \leq 10$,$1 \leq k \leq 50$,$0 \leq x_i, y_i < n$。
查看答案
赣ICP备20007335号-2