本文共 610 字,大约阅读时间需要 2 分钟。
记录:康托展开(感觉和之前的拔树和耕犁问题差不多……)基本上是c++实现的代码想着就把c的传上来了。
前传:详见洛谷P2525
Uim成功地按照顺序将礼物送到了N个妹子的手里并维持她们的和谐。
Uim现在想知道,他最终选择的顺序是所有给N个妹子送礼顺序中、字典序第几小的。
第一行一个整数N,表示有N个数。
第二行一个整数X,表示给出的排列。
一个整数,表示是第几小的字典序。
输入 #1
3231
输出 #1
4
1<=N<=9
输入的排列没有空格
#includevoid kangtuo(int n, int *a, int* b){ int s[10]={0}; for(int i=0; i =0; i--) { s[a[i]-1]=0; for(int j=a[i]-1; j>=0; j--) { b[i]+=s[j]; } }}int main(){ int n,x; scanf("%d%d",&n,&x); int a[9]={0}; int t=x; int b[10]={0}; //逆序存放 for(int i=0; i
转载地址:http://xssqf.baihongyu.com/