大佬博客
就两个内容,一个是康托展开,一个是逆康托展开.即前者是给定一个\(n\)个数的排列,求这个排列在这\(n\)个数的全排列中 按照字典序从小到大 是排在第几个.后者是给定排名,求出其对应的排列.
知识点看上面那篇博客就能懂了.这里只提个醒,就是不论是康托展开,还是逆康托展开,我们求出的排名都是指排在这个排列的前面的排列有多少个.即假设在康托展开中,对于一个排列\(p\),我们按照公式求出了一个数\(x\),\(x\)表示的是\(p\)前面的排列有多少个,即\(p\)的排名是\(x+1\).同理在逆康托展开中,给定了排名\(k\),我们应该先让\(k-1\),然后再去套公式求出其对应的排列.
洛咕:【模板】康托展开
题意:求\(1\sim N\)的一个给定全排列在所有\(1\sim N\)全排列中的排名。结果对\(998244353\)取模.\(1<=N<=1000000.\)
#include
#include
#include
#include
#include
#include
#include
洛咕:[\(USACO11FEB\)]牛线\(Cow\) \(Line\)
#include
#include
#include
#include
#include
#include
#include
洛咕:\(Uim\)的情人节礼物·其之弐
洛咕:\(Uim\)的情人节礼物·其之壱