int KT(string tm)
{
int ret = 0, t;
for (int i = 0; i < NL; ++i){
t = 0;
for (int j = i + 1; j < NL; ++j){
if (tm[j] < tm[i]){
t++;
}
}
ret += t * fac[NL - i - 1];
}
return ret+1;
}
void initFac()
{
fac[0] = 1;
for (int i = 1; i <= NL; ++i){
fac[i] = fac[i-1] * i;
}
}
康託展開與逆康託展開
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.