题目链接 点击打开链接
总共排序有n!种,每种相同的字母的排序是k!(k为相同字母的个数),100!爆了LL 用Java搞定.
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
BigInteger b[]=new BigInteger[105];
b[0]=new BigInteger("1");
for(int i=1;i<=100;i++) b[i]=b[i-1].multiply(new BigInteger(String.valueOf(i)));
int n;
Scanner cin=new Scanner(System.in);
n=cin.nextInt();
String s=new String();
s=cin.next();
BigInteger ans=b[n];
for(int i='A';i<='Z';i++) {
int cnt=0;
for(int j=0;j<n;j++) {
if((char)i==(s.charAt(j))) {
cnt++;
}
}
ans=ans.divide(b[cnt]);
}
System.out.println("1/"+ans);
}
}