各位神犇们,帮我看看这一道题?本蒟蒻改了好几次也没有改对
  • 板块学术版
  • 楼主lwx20211103
  • 当前回复4
  • 已保存回复4
  • 发布时间2022/7/3 20:30
  • 上次更新2023/10/27 21:58:13
查看原帖
各位神犇们,帮我看看这一道题?本蒟蒻改了好几次也没有改对
727008
lwx20211103楼主2022/7/3 20:30

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;
}

如果有解答,不胜感激

2022/7/3 20:30
加载中...