相关代码 |
|
//字典序全排列与序号的转换 int perm2num(int n,int *p){ int i,j,ret=0,k=1; for (i=n-2;i>=0;k*=n-(i--)) for (j=i+1;j if (p[j] ret+=k; return ret; } void num2perm(int n,int *p,int t){ int i,j; for (i=n-1;i>=0;i--) p[i]=t%(n-i),t/=n-i; for (i=n-1;i;i--) for (j=i-1;j>=0;j--) if (p[j] p[i]++; }
相关资源 |
|