排列序列 (康托展开)
2017-03-31 12:15
267 查看
X星系的某次考古活动发现了史前智能痕迹。
这是一些用来计数的符号,经过分析它的计数规律如下:
(为了表示方便,我们把这些奇怪的符号用a~q代替)
abcdefghijklmnopq 表示0
abcdefghijklmnoqp 表示1
abcdefghijklmnpoq 表示2
abcdefghijklmnpqo 表示3
abcdefghijklmnqop 表示4
abcdefghijklmnqpo 表示5
abcdefghijklmonpq 表示6
abcdefghijklmonqp 表示7
…..
在一处石头上刻的符号是:
bckfqlajhemgiodnp
请你计算出它表示的数字是多少?
请提交该整数,不要填写任何多余的内容,比如说明或注释。
#include<iostream>
using namespace std;
long long a[20]={1};
char str[]="bckfqlajhemgiodnp";
void jc(int i)
{
a[i] = a[i-1]*i;
}
int main()
{
int i,j;
long long num=0,t;
for (i=1; i<=17; i++)//求出阶乘
{
jc(i);
}
for (i=0; i<17; i++)
{
t = 0;
for (j=i+1; j<17; j++)
{
if (str[i] > str[j])
{
t++;
}
}
num += t * a[17-i-1];
}
cout<<num;
return 0;
}
这是一些用来计数的符号,经过分析它的计数规律如下:
(为了表示方便,我们把这些奇怪的符号用a~q代替)
abcdefghijklmnopq 表示0
abcdefghijklmnoqp 表示1
abcdefghijklmnpoq 表示2
abcdefghijklmnpqo 表示3
abcdefghijklmnqop 表示4
abcdefghijklmnqpo 表示5
abcdefghijklmonpq 表示6
abcdefghijklmonqp 表示7
…..
在一处石头上刻的符号是:
bckfqlajhemgiodnp
请你计算出它表示的数字是多少?
请提交该整数,不要填写任何多余的内容,比如说明或注释。
#include<iostream>
using namespace std;
long long a[20]={1};
char str[]="bckfqlajhemgiodnp";
void jc(int i)
{
a[i] = a[i-1]*i;
}
int main()
{
int i,j;
long long num=0,t;
for (i=1; i<=17; i++)//求出阶乘
{
jc(i);
}
for (i=0; i<17; i++)
{
t = 0;
for (j=i+1; j<17; j++)
{
if (str[i] > str[j])
{
t++;
}
}
num += t * a[17-i-1];
}
cout<<num;
return 0;
}
相关文章推荐
- 全排列的本质——康托展开以及本质原理分析——选取第N个——由序列推知第几个
- Leetcode #60. Permutation Sequence 排列组合序列 解题报告
- 康托展开(求该排列是第几大的) 模板
- LeetCode 60. Permutation Sequence(排列序列)
- 蓝桥杯2017模拟赛-排列序列
- 康托展开(用于全排列与整数的转换)
- hdu1027(n个数的按字典序排列的第m个序列)
- 【专题】计数问题(排列组合,容斥原理,Prufer序列)
- java写出一个序列的所有排列组合
- 求序列的排列
- 打印到类阵列的给定序列的所有排列的n皇后问题
- 全排列散列 - (康托展开 和 逆康托展开)
- 单链表应用举例(单链表A和单链表B的元素都是非递减排列,利用单链表的基本运算,将它们合并成一个单链表C,要求C也是非递减序列)
- C语言冒泡序列把数字从大到小排列
- 51nod 排列与交换 序列dp
- noip2004 火星人 (按照康托展开,从一个排列生成下一个排列)
- 扑克序列 (排列)
- 全排列字典序与序号的一一对应关系 康托展开 perm2num num2 perm
- 现有一个n个整数的序列,你要做的就是交换两个数的位置直到整个序列按照升序排列,那么将这个整数序列排好序,需要交换多少次?
- (POJ 1270)Following Orders 求序列在限制条件下的 [全排列]