hdu 1043 Eight(康托展开 + BFS)
Posted jpphy0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu 1043 Eight(康托展开 + BFS)相关的知识,希望对你有一定的参考价值。
问题
hdu 1043 Eight - https://acm.hdu.edu.cn/showproblem.php?pid=1043
分析
- 康托展开
int frac[10]={1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};
int toCantor(char *x){
int ret = 0, cnt = 0;
char str[11]="123456789"; // 初始排列
for(int i = 0; i < 9; ++i){
for(int j = 0; j < 9; ++j) cnt += x[i] > str[j];
str[x[i]-'1'] = 'a', ret += cnt*frac[8-i], cnt = 0;
}
return ret+1;
}
以上是关于hdu 1043 Eight(康托展开 + BFS)的主要内容,如果未能解决你的问题,请参考以下文章