题目
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/959a75ae806327a14c61ea4c3e49ebb5.png)
大意:给定n,k,构造一个1-n的排列P,使得对于1-n中的每个i,P都存在一个长为i的子序列,而每个子序列的和模n都余k。有解则输出任意P,无解输出-1。
思路
1.长度为n的子序列只有本身
2.所有子序列和模n余k,则所有数总和模n余k才会有解决方案。
3.列表发现,n为奇数,则k=0;n为偶数,则k=n/2
4.找规律,有通用排列存在
n为奇数时:P={n,1,n-1,2,n-2,…}
n为偶数时:P={n,n/2,1,n-1,2,n-2,…}
代码
#include<iostream>
#include<cstdio>
using namespace std<