求大神帮忙,为什么只有一个ac 别的都是答案错误
查看原帖
求大神帮忙,为什么只有一个ac 别的都是答案错误
1010172
solo1楼主2023/8/8 09:06
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

int main()
{
	int n, m, a[10001], sum = 0, b[10001], c = 0, flag =1;
	
	cin >> n >> m;
	for(int i = 1; i <= n; i++)
	{
		cin >> a[i];
		b[i] = i;
	}
	do{
		sum++;
		c++;
		for(int i = 1; i <= n; i++)
		{
			if(b[i] != a[i])   //判断数组b和a的排列是否相同
			{
				flag == 0;
				break;
			}
		}
		if(flag == 1)  
		{
			sum += m;
			break;
		}			//next_permutation()是求当前排列下一个排列的函数
	}while(next_permutation(b+1,b+n+1));
	//这时直接要下一个序列,直接用while即可
	while(next_permutation(b+1,b+n+1))
	{
		c++;
		if(c == sum)
		{
			for(int i = 1; i <= n; i++)
			{
				cout << b[i] << " ";
			}
			break;
	    }
    }
    cout << endl;
    system("pause");
    return 0;
}
2023/8/8 09:06
加载中...