이 문제에서 우리는 정수 값 N입니다. 우리의 임무는 처음 N개의 자연수의 좋은 순열을 찾는 것입니다. .
순열은 배열의 순서와 관련하여 개체 집합의 전체 또는 일부를 배열하는 것입니다.
좋은 순열 $1\leqslant{i}\leqslant{N}$ 다음에 오는 순열입니다.
$P_{pi}\:=\:i$
$P_{p!}\:=\:i$
문제를 이해하기 위해 예를 들어 보겠습니다.
Input : N = 1 Output : -1
솔루션 접근 방식
문제에 대한 간단한 해결책은 순열을 찾는 것입니다. p와 같은 pi =나.
그런 다음 방정식을 재고하여 pi !=나. 따라서 $2x \leqslant x$와 같은 값 x에 대해 p 2x - 1 이 있습니다. 및 p 2k . 이제 n에 대한 순열 방정식을 만족하는 방정식이 있습니다. 다음은 방정식의 해입니다.
예시
솔루션 작동을 설명하는 프로그램
#include <iostream> using namespace std; void printGoodPermutation(int n) { if (n % 2 != 0) cout<<-1; else for (int i = 1; i <= n / 2; i++) cout<<(2*i)<<"\t"<<((2*i) - 1)<<"\t"; } int main() { int n = 4; cout<<"Good Permutation of first N natural Numbers : \n"; printGoodPermutation(n); return 0; }
출력
Good Permutation of first N natural Numbers : 2 1 4 3