我排第几个

时间限制:1000 ms  |  内存限制:65535 KB
难度:3

描述

现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?

输入
第一行有一个整数n(0<n<=10000);
随后有n行,每行是一个排列;
输出
输出一个整数m,占一行,m表示排列是第几位;
样例输入
3
abcdefghijkl
hgebkflacdji
gfkedhjblcia
样例输出
1
302715242
260726926
/*
题意:给定一个由 a 到 l的不重复出现的字符串字符串,求该字符串按照字典序排列的所有序列中是第几小的
题解:康托展开。。。。。http://zh.wikipedia.org/zh/康托展开康托展开是一个双射,即不仅可以求是第几小,而且可以根据是第几小求出该排列
*/#include <iostream>
#include <cstring>using namespace std;const int MAX = 12;
int fac[MAX + 1];void cal()      //计算阶乘的
{fac[0] = 1;for(int i = 1; i <= MAX-1; ++i)fac[i] = fac[i-1] * i;
}int main()
{int T;char s[MAX + 1];cal();cin >> T;while(T--){cin >> s;int len = strlen(s);long long ans = 0;for(int i = 0; i < len-1; ++i){int count = 0;for(int j = i + 1; j <= len-1; ++j)if(s[i] > s[j])++count;ans += count * fac[len - i - 1];}cout << ans + 1 << endl;}// while(1);return 0;
}

NYOJ-139 我排第几个相关推荐

  1. NYOJ 139 我排第几个?

    我排第几个 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排 ...

  2. NYOJ 139 我排第几个(康托展开)

      我排第几个 时间限制:1000ms  |  内存限制:65535KB 难度:3 描述 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任 ...

  3. (康托展开解释)+ NYOJ 139 我排第几个

    描述 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? 输入 第一行有一个整数n(0<n& ...

  4. NYIST 139 我排第几个(康托展开)

    关于康拓展开: 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩. 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的. 以下称第x个全排列是都是指由小到大的顺 ...

  5. NOY 139 康托展开

    题目链接 NOY 139 我排第几个 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小>的? ...

  6. 康拓展开与逆康拓展开

    康托展开与逆康托展开   康托展开据我所理解,应该便是给你一个已知的排列,然后这个排列在全排列中是第几小或者第几大的,一般都是按字典序计算,即为第几小的.康托展开的公式为:X=a[n]*(n-1)!+ ...

  7. (大快人心,必须转啊)中国体操男队完美逆转卫冕 日本申诉成功获银牌

    转载自:http://2012.sohu.com/20120731/n349414788.shtml?pvid=a4d61d1eb3caceef 发布到 csdn 首页所以归类原创,谅解! 北京时间7 ...

  8. NYOJ 光棍节的快乐【全错排问题】

    光棍节的快乐 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 光棍们,今天是光棍节.聪明的NS想到了一个活动来丰富这个光棍节. 规则如下: 每个光棍在一个纸条上写一个自己 ...

  9. NYOJ 451 光棍节的快乐(错排公式+排列组合)

    描述 光棍们,今天是光棍节.聪明的NS想到了一个活动来丰富这个光棍节. 规则如下: 每个光棍在一个纸条上写一个自己心仪女生的名字,然后把这些纸条装进一个盒子里,这些光 棍依次抽取一张纸条,如果上面的名 ...

  10. 练习友元函数,有元类,快排和全排列问题

    写了一小段代码: 练习一下友元类和友元函数的声明和使用: 练习一下最简单的快排算法: 练习一下递归的方法处理全排列问题. 代码: 1 #include <stdlib.h> 2 #incl ...

最新文章

  1. 【数据库】分库分表策略
  2. 使用 Castal DynamicProxy 简化 Silverlight 数据绑定
  3. 分享10个强大的神器工具,你一定会需要!
  4. java 调试 工具_Java调试器–权威的工具列表
  5. 华为root工具_华为Mate9解锁后无法ROOT 需要手动刷入Recovery怎么办【解决方法】...
  6. Windows 10企业批量部署实战之刷新并添加启动映像
  7. ironpython2.7.8相当于python3.7吗_IronPython与numpy的Python速度之比较
  8. [转]转一篇不错的文章:ORM 在电子商务系统中的应用
  9. 吴恩达深度学习编程作业:TensorFlow
  10. 使用“Grafeas”元数据API和“Kritis”部署授权管理软件供应链
  11. 优粮生活炒菜机器人_闫寒 - 外卖O2O「优粮生活」合伙人 | 到「在行」来约见我...
  12. PMP试题 | 每日一练,快速提分 9.3
  13. 激光导航AGV最常见的控制算法有哪些?
  14. 能源消耗总量计算公式_能耗计算公式
  15. Python爬虫爬企查查数据
  16. 无人驾驶感知篇之传感器标定(二)
  17. 深度对话 | V 神纵论区块链和以太坊
  18. 下载python后怎么运行代码,怎样下载python的编译器
  19. 怎么判断是程序存在问题还是软硬件系统存在问题
  20. Vue小项目Mock.js的学习

热门文章

  1. mysqldump定时备份数据库
  2. 在线预览任务调度的实现
  3. 安全退出调用多个Activity的Application
  4. [POJ1741]Tree
  5. 属性与内存管理(属性与内存管理都是相互关联的)
  6. [EULAR文摘] 肢端MRI能否在未分化关节患者中甄别出RA患者
  7. Redis Pub/Sub (Java)
  8. 第十九章 9标签类Label
  9. 解决linux系统CentOS下调整home和根分区大小
  10. 我与 美国作家 21天精通C++ 作者 Rao的对话: