第幾是誰(NYOJ)

2021-06-19 11:29:03 字數 1962 閱讀 2640

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度:3

描述

現在有"abcdefghijkl」12個字元,將其按字典序排列,如果給出任意一種排列,我們能說出這個排列在所有的排列中是第幾小的。但是現在我們給出它是第幾小,需要你求出它所代表的序列.

輸入

第一行有乙個整數n(0

輸出輸出乙個序列,佔一行,代表著第m小的序列。

樣例輸入

3

1302715242

260726926

樣例輸出

abcdefghijkl

hgebkflacdji

gfkedhjblcia

#include

#include

long int fac[13] = ;

char s[12];

int a[12];

void find(int len, int n);

int main()

return 0;

}void find(int len, int n)

i = 0;

while(a[i])//最後剩下的就是最後乙個;

i++;

s[len - 1] = i + 97;

}        

題目:給出n個互不相同的字元, 並給定它們的相對大小順序,這樣n個字元的所有排列也會有乙個順序. 現在任給乙個排列,求出在它後面的第i個排列.

這是乙個典型的康拓展開應用,首先我們先闡述一下什麼是康拓展開。

(1)康拓展開

所謂康拓展開是指把乙個整數x展開成如下形式:

x=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!+a[1]*0!。(其中,a為整數,並且0<=a[i]

2 using namespace std;

3 4 int cantor(int *s,int n);  //康托展開,判斷給定的排列位於全排列中的第幾個

5 long int fac=; //表示階乘運算的結果

6 //long int fac=;

7 8 int main(int argc,char *argv)

9 ;   //表示排列2134

11     int len=4;        //表示數列中數字數目

12     int index=cantor(s,len);

13     cout<

2 using namespace std;

3 4 void cantorreverse(int index,int *p,int n);  //康托展開逆用,判斷給定的位置中的排列

5 long int fac=; //表示階乘運算的結果

6 //long int fac=;

7 8 int main(int argc,char *argv)

9 組成的所有排列中,求出第96個排列的順序

13     for(int i=0;i

上面網上找的康拓展開的解釋

康拓展開逆運算:

#include

char s[5] = ;

int a[5];

int  fac[100] = ;

void find(int num, int len);

int main()

void find(int num, int len)

else}}

自己嘗試:

康拓展開:

#include

int  fac[100] = ;

int main()

;len = 3;

num = 0;

for(i = 0; i < len; i++)

printf("%d\n",num);

return 0;

}

nyoj 143 第幾是誰?

時間限制 3000 ms 記憶體限制 65535 kb 難度 3描述 現在有 abcdefghijkl 12個字元,將其按字典序排列,如果給出任意一種排列,我們能說出這個排列在所有的排列中是第幾小的。但是現在我們給出它是第幾小,需要你求出它所代表的序列.輸入 第一行有乙個整數n 0 輸出輸出乙個序列...

NYOJ 143第幾是誰

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現在有 abcdefghijkl 12個字元,將其按字典序排列,如果給出任意一種排列,我們能說出這個排列在所有的排列中是第幾小的。但是現在我們給出它是第幾小,需要你求出它所代表的序列.輸入第一行有乙個整數n 0輸出 輸出乙個序列,...

NYOJ 143 第幾是誰?

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有 abcdefghijkl 12個字元,將其按字典序排列,如果給出任意一種排列,我們能說出這個排列在所有的排列中是第幾小的。但是現在我們給出它是第幾小,需要你求出它所代表的序列.輸入 第一行有乙個整數n 0 輸出輸出乙個序...