这是一个远古时期的秘密,至今已无人关心。 这个世界的每个时代可以和一个 1 ∼ n 的排列一一对应。 时代越早,所对应的排列字典序就越小。
我们知道,公爵已经是 m 个时代前的人物了。
并且通过翻阅古籍,我们得知了公爵所在时代所对应的排列。
那么我们的时代所对应的排列是什么?
希望以此能寻回我们失落的文明……
这道题涉及了字典序(https://www.cnblogs.com/wuyepeng/p/9663261.html)和
组合排列(https://blog.csdn.net/zeo_m/article/details/80505404)
只是,我一开始并不知道这道题是啥意思。
但我绝对没想到这道题有如此简单的解法:
#include <cstdio> #include <algorithm> using namespace std int n, m, a[10010]; int main(){ scanf("%d%d", &n, &m); for(int i=1;i<=n;++i) scanf("%d", a + i); while (m--) next_permutation(a + 1, a + n + 1); for(int i=1;i<=n;++i) printf("%d ", a[i]); return 0; }
其中“next_permutation”表示的是“下一个排列”,
具体用法请参照https://www.cnblogs.com/eudiwffe/p/6260699.html
大水题!大水题!
不得不说,这个作者很厉害(niu bi)