NSUOJ 1117 字元排列問題

2021-10-08 19:22:48 字數 786 閱讀 6151

description

有n個字母,列出由該字母組成的字串的全排列(相同的排列只計一次)。

input

輸入有多組測試資料,第一行輸入是字母個數n,1<=n<=20。接下來一行輸入的是待排列的n個字母。

output

計算出的n 個字母的所有不同排列總數

sample input copy

4aacc

sample output copy

6題解思路:用所有字母的排列數除以每個重複字母排列數。

abcd排列數:1×2×3×4

abcc排列數:1×2×3×4 / ( 1×2×(1×2) )

#include

#include

#include

#include

#include

#define ll long long

#define ull unsigned long long

const

int n =

1e6+

6666

;ll jc

(ll k)

return ans;

}int x[

200]

;int

main()

for(

int i=

97; i<

123; i++)}

printf

("%lld\n",jc

(n)/m);}

return0;

}

28 字串的排列

題目 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。解題思路 遞迴呼叫 遞迴演算法的四個特性 1.必須可以達到終止條件,否則會陷入死迴圈 2 子問題在規模上比原問題小 3 子問題可...

27 字串的排列

題目 輸入乙個字串,按字典序列印出該字串中字元的所有排列。例如輸入字串abc,則列印出由字元a,b,c所能排列出來的所有字串abc,acb,bac,bca,cab和cba。思路 全排列,採用遞迴。1 首先,我們固定第乙個字元a,求後面兩個字元bc的排列 2 當兩個字元bc排列求好之後,我們把第乙個字...

567 字串的排列

給定兩個字串 s1 和 s2,寫乙個函式來判斷 s2 是否包含 s1 的排列。換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 思路 注釋 public boolean checkinclus...