https://cdn.luogu.com.cn/upload/image_hosting/v375brsy.png
代码:
#include <iostream>
#include <queue>
using namespace std;
int list1[20001];
int list2[20001];
int list3[20001];
queue<int> a;
queue<int> b;
int main()
{
int n;
int sum = 1;
cin >> n;
int i;
int p;
for (i = 0;i < 2 * n;i++)
{
list1[i] = i + 1;
list3[i] = i + 1;
}
for (p = 0; ; p++) {
int j = 0;
while (j <= 2 * (n - 1))
{
for (i = 0;i < n;i++)
{
a.push(list1[i]);
}
for (i = n;i < 2 * n;i++)
{
b.push(list1[i]);
}
list2[j] = a.front();
list2[j + 1] = b.front();
a.pop();
b.pop();
j+=2;
}
for (i = 0;i < 2 * n;i++)
{
list1[i] = list2[i];
}
for (i = 0;i < 2 * n;i++)
{
if (list2[i] != list3[i])
{
sum = 0;
break;
}
else sum = 1;
}
if (sum == 1)
{
cout << p + 1;
break;
}
}
return 0;
}
如果有解答,不胜感激