📅  最后修改于: 2023-12-03 14:58:35.475000             🧑  作者: Mango
问题描述:
有 $n$ 个门排成一列,每个门要么是打开的,要么是关闭的,你需要操作这些门使得最后只有编号为 $k$ 的门是打开的。
每次操作可以选择编号为 $i$ 和 $j$ 的两扇门 $(1 \leq i,j \leq n)$, 并将它们的状态进行 “取反”。即开关状态互换。
现在请你编写一个程序,计算出要想只有编号为 $k$ 的门是打开的,至少需要进行多少次操作?
输入格式:
输入的第一行包含三个整数 $n, m, k$,表示门的数量,操作次数,和最终门的编号。
接下来 $m$ 行,每行包含两个整数 $a, b$,表示门 $a$ 和门 $b$ 可以进行一次操作。
输出格式:
输出一个整数,表示只有编号为 $k$ 的门是打开的,至少需要进行的操作次数。
输入样例:
5 4 3
1 2
2 3
3 4
4 5
输出样例:
1
提示:
题目中所描述的取反操作,就是常见的异或操作,设 $a$ 为某个状态,则 $a$ 异或 $1$ 即表示对 $a$ 取反。