nyoj 我排第幾個

2021-08-18 03:30:52 字數 874 閱讀 9606

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3描述

現在有"abcdefghijkl」12個字元,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?輸入

第一行有乙個整數n(0

輸出輸出乙個整數m,佔一行,m表示排列是第幾位;

樣例輸入

3

abcdefghijkl

hgebkflacdji

gfkedhjblcia

樣例輸出

1

302715242

260726926

解題思路:

康托展開表示的是當前排列在n個不同元素的全排列中的名次,比如213在這3個數所有排列中排第3。

康托展開公式為

eg:  213 ;       第乙個數 2 ,後面有乙個比2小的, 所以1*2!=2, 

第二個數 1 ,後面有0個比1小的,  所以0*1!=0,

第三個數 3 ,後面有0個比3小的,  所以0*0!=0,

他們的和為2,表明213在全排列中前面有兩個數 

**如下:

/*     

**型別:數論

**問題描述:康托展開

**輸入:

**輸出:

*/

# include# includeint main()

printf("%d\n",sum+1); //+1

} return 0;

}

我排第幾個?

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在有 abcdefghijkl 12個字元,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?輸入 第一行有乙個整數n 0 輸出 輸出乙個整數m,佔一行,m表示排列是第幾位 樣例輸入 3 a...

我排第幾個

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在有 abcdefghijkl 12個字元,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?輸入 第一行有乙個整數n 0 輸出輸出乙個整數m,佔一行,m表示排列是第幾位 樣例輸入 3 ab...

我排第幾個

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在有 abcdefghijkl 12個字元,將其所有的排列中按字典序排列,給出任意一種排列,說出這個排列在所有的排列中是第幾小的?輸入 第一行有乙個整數n 0 輸出輸出乙個整數m,佔一行,m表示排列是第幾位 樣例輸入 3 ab...