[ICPC2020南京K] K Co-prime Permutation - 构造

Description

给定n,k,要求构造一个排列a,满足存在恰好k对:\(gcd(a[i],i)=1\),如果无解输出-1.

Solution

由于 \(gcd(x-1,x)=1\),将前 \(k\) 个数循环移位即可

#include <bits/stdc++.h>
using namespace std;

#define int long long

int n, k, a[1000005];

signed main()
{
    ios::sync_with_stdio(false);
    cin >> n >> k;
    iota(a + 1, a + n + 1, 1);
    if (k == 0)
    {
        cout << -1 << endl;
    }
    else
    {

        rotate(a + 1, a + 2, a + k + 1);
        for (int i = 1; i <= n; i++)
            cout << a[i] << " ";
        cout << endl;
    }
}

相关文章:

  • 2022-12-23
  • 2022-01-02
  • 2022-12-23
  • 2021-09-06
  • 2021-09-16
  • 2021-11-20
  • 2021-09-22
  • 2022-12-23
猜你喜欢
  • 2021-08-02
  • 2021-07-01
  • 2021-11-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案