蓝桥 排列序数(康托展开)
2018-03-25 21:51
281 查看
标题: 排列序数
X星系的某次考古活动发现了史前智能痕迹。
这是一些用来计数的符号,经过分析它的计数规律如下:
(为了表示方便,我们把这些奇怪的符号用a~q代替)
abcdefghijklmnopq 表示0
abcdefghijklmnoqp 表示1
abcdefghijklmnpoq 表示2
abcdefghijklmnpqo 表示3
abcdefghijklmnqop 表示4
abcdefghijklmnqpo 表示5
abcdefghijklmonpq 表示6
abcdefghijklmonqp 表示7
…..
在一处石头上刻的符号是:
bckfqlajhemgiodnp
请你计算出它表示的数字是多少?
康拓展开求排列的次序,注意从零开始。
X=a
*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0!
还可以利用康托逆展开求排在某一次序的排列。#include<cstdio>
#include<cstring>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
int vis[20];
ll jiecheng(ll x){
if(x==0)
return 1;
return x*jiecheng(x-1);
}
int main(){
string s="bckfqlajhemgiodnp";
ll sum=0;
for(int i=1; i<=s.size(); i++)
{
ll num=0;
for(int j=0; j<s[i-1]-'a'; j++)
if(!vis[j])
num++;
vis[s[i-1]-'a']=1;
sum+=num*jiecheng(ll(s.size()-i));
}
printf("%lld\n", sum);
return 0;
}22952601027516
X星系的某次考古活动发现了史前智能痕迹。
这是一些用来计数的符号,经过分析它的计数规律如下:
(为了表示方便,我们把这些奇怪的符号用a~q代替)
abcdefghijklmnopq 表示0
abcdefghijklmnoqp 表示1
abcdefghijklmnpoq 表示2
abcdefghijklmnpqo 表示3
abcdefghijklmnqop 表示4
abcdefghijklmnqpo 表示5
abcdefghijklmonpq 表示6
abcdefghijklmonqp 表示7
…..
在一处石头上刻的符号是:
bckfqlajhemgiodnp
请你计算出它表示的数字是多少?
康拓展开求排列的次序,注意从零开始。
X=a
*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0!
还可以利用康托逆展开求排在某一次序的排列。#include<cstdio>
#include<cstring>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
int vis[20];
ll jiecheng(ll x){
if(x==0)
return 1;
return x*jiecheng(x-1);
}
int main(){
string s="bckfqlajhemgiodnp";
ll sum=0;
for(int i=1; i<=s.size(); i++)
{
ll num=0;
for(int j=0; j<s[i-1]-'a'; j++)
if(!vis[j])
num++;
vis[s[i-1]-'a']=1;
sum+=num*jiecheng(ll(s.size()-i));
}
printf("%lld\n", sum);
return 0;
}22952601027516
相关文章推荐
- 蓝桥模拟题 排列序数(康托展开)
- 2017 蓝桥模拟 排列序数 康托展开
- 2017蓝桥杯官方模拟题 排列序数(康托展开)
- (蓝桥杯练习)3.排列序数(康托展开)
- 蓝桥 排列序数
- leetcode[60]Permutation Sequence 以及 全排列的编码与解码——康托展开 (附完整代码)
- 蓝桥杯2017【模拟赛3】排列序数(康托展开式)
- 【蓝桥第六周】排列
- 蓝桥杯——排列序数——康拓展开(全排列)
- 我排第几个和排列序数
- 2017蓝桥杯模拟题 排列序数(康托展开)
- 排列序数——详解第五届蓝桥杯决赛题目
- 蓝桥杯java第五届决赛第四题--排列序数
- 排列序数
- 用于数字康托展开 用于求一个排列的序号或序号对应的排列或对排列的hash
- 2017蓝桥杯模拟题 排列序数(康托展开)
- 2017蓝桥杯模拟题 排列序数(康托展开)
- 康托展开(用于全排列与整数的转换)
- 康托展开 全排列
- 51nod:第K个幸运排列(数位dp & 逆康托展开)