#2345. 交换位置(swap)
交换位置(swap)
Description
现在有一个序列 a,a 的长度为 n,一开始a[i]=i(1≤i≤n),现在有m次操作,每个操作的格式是这样的:x y表示把当前的a[x]与a[y]交换。我们把这m次操作叫做一轮操作,现在问,在经过多少轮操作之后,序列a又会回到原来的样子(原来的样子就是指a[i]=i(1≤i≤n))
Input Format
第一行,两个整数n,m,n表示a的长度,m表示操作数接下来m行,每行一个操作x y,表示把当前的a[x]与a[y]交换。保证(1≤x,y≤n)
Output Format
只有一个数,表示在经过多少轮之后4 4
1 4
3 4
2 3
1 4
3
Hint
【样例1解释】初始 1 2 3 4
1 4 : 4 2 3 1
3 4:4 2 1 3
2 3:4 1 2 3
14:3 1 2 4
第一轮操作之后
a[1]=3,a[2]=1,a[3]=2,a[4]=4
第二轮操作之后
a[1]=2,a[2]=3,a[3]=1,a[4]=4
第三轮操作之后
a[1]=1,a[2]=2,a[3]=3,a[4]=4
任务完成
【样例输入 2】
5 3
1 2
2 3
4 5
【样例输出 2】
6
【数据范围】
50%数据保证 1≤n,m≤1000,答案小于等于 1000
100%数据保证 1≤n,m≤50000,答案小于等于 10^18