K Co-prime Permutation
 
 输入样例1
输入样例1
5 3
输出样例1
1 4 5 2 3
输入样例2
1 0
输出样例2
-1
题解
题目的意思是给一个排列,使得这一个排列的下标与的数字互质的总个数为k个。
注意有一种构造方法:
两个相邻的数字一定是互质的。
也要注意:当k为0的时候是不可能的(因为1与任何数字的最小公约数是1)。
#include <bits/stdc++.h>
#include <cstdio>
using namespace std;
int main()
{
    int n, k;
    cin >> n >> k;
    if(k == 0){
        puts("-1");
        return 0;
    }
    for(int i = 2; i <= k; i++)
    {
        printf("%d ", i);
    }
    printf("%d ", 1);
    for(int i = k+1; i <= n; i++)
        printf("%d ", i);
    puts("");
  
    return 0;
}

 京公网安备 11010502036488号
京公网安备 11010502036488号