大佬求助 自己写的全排列只能拿30 系统自带全排列算法满分
查看原帖
大佬求助 自己写的全排列只能拿30 系统自带全排列算法满分
893179
sphssddg楼主2023/3/26 20:54
#include<iostream>
#include<algorithm>
using namespace std;
const int N=10010;
int arr[N];
int n,m,res=0; 
bool return0=false;
# 自己写的全排列
void permutation(int begin)
{
	if(return0)
	return ;
	
	if(begin==n)
	{
		res++;
		if(res==m+1)
		{
			return0=true;
			for(int i=1;i<=n;i++)
			{
				cout<<arr[i]<<" ";
			} 
		}
		return;
	}
	for(int i=begin;i<=n;i++)
	{
		swap(arr[begin],arr[i]);
		permutation(begin+1);
		swap(arr[begin],arr[i]);
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++ )
	{
		cin>>arr[i];
	}
# 	系统的全排列
//	do
//	{
//		if(m==0)
//		{
//			for(int i=1;i<=n;i++)
//			{
//				cout<<arr[i]<<" ";	
//			}
//			break;
//		}
//
//		m--;
//	}while(next_permutation(arr+1,arr+1+n));
	permutation(1);
	
	return 0;
}
2023/3/26 20:54
加载中...