NYOJ-139 我排第几个
我排第几个
- 描述
-
现在有"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 我排第几个相关推荐
- NYOJ 139 我排第几个?
我排第几个 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排 ...
- NYOJ 139 我排第几个(康托展开)
我排第几个 时间限制:1000ms | 内存限制:65535KB 难度:3 描述 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任 ...
- (康托展开解释)+ NYOJ 139 我排第几个
描述 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? 输入 第一行有一个整数n(0<n& ...
- NYIST 139 我排第几个(康托展开)
关于康拓展开: 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩. 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的. 以下称第x个全排列是都是指由小到大的顺 ...
- NOY 139 康托展开
题目链接 NOY 139 我排第几个 现在有"abcdefghijkl"12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小>的? ...
- 康拓展开与逆康拓展开
康托展开与逆康托展开 康托展开据我所理解,应该便是给你一个已知的排列,然后这个排列在全排列中是第几小或者第几大的,一般都是按字典序计算,即为第几小的.康托展开的公式为:X=a[n]*(n-1)!+ ...
- (大快人心,必须转啊)中国体操男队完美逆转卫冕 日本申诉成功获银牌
转载自:http://2012.sohu.com/20120731/n349414788.shtml?pvid=a4d61d1eb3caceef 发布到 csdn 首页所以归类原创,谅解! 北京时间7 ...
- NYOJ 光棍节的快乐【全错排问题】
光棍节的快乐 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 光棍们,今天是光棍节.聪明的NS想到了一个活动来丰富这个光棍节. 规则如下: 每个光棍在一个纸条上写一个自己 ...
- NYOJ 451 光棍节的快乐(错排公式+排列组合)
描述 光棍们,今天是光棍节.聪明的NS想到了一个活动来丰富这个光棍节. 规则如下: 每个光棍在一个纸条上写一个自己心仪女生的名字,然后把这些纸条装进一个盒子里,这些光 棍依次抽取一张纸条,如果上面的名 ...
- 练习友元函数,有元类,快排和全排列问题
写了一小段代码: 练习一下友元类和友元函数的声明和使用: 练习一下最简单的快排算法: 练习一下递归的方法处理全排列问题. 代码: 1 #include <stdlib.h> 2 #incl ...
最新文章
- 【数据库】分库分表策略
- 使用 Castal DynamicProxy 简化 Silverlight 数据绑定
- 分享10个强大的神器工具,你一定会需要!
- java 调试 工具_Java调试器–权威的工具列表
- 华为root工具_华为Mate9解锁后无法ROOT 需要手动刷入Recovery怎么办【解决方法】...
- Windows 10企业批量部署实战之刷新并添加启动映像
- ironpython2.7.8相当于python3.7吗_IronPython与numpy的Python速度之比较
- [转]转一篇不错的文章:ORM 在电子商务系统中的应用
- 吴恩达深度学习编程作业:TensorFlow
- 使用“Grafeas”元数据API和“Kritis”部署授权管理软件供应链
- 优粮生活炒菜机器人_闫寒 - 外卖O2O「优粮生活」合伙人 | 到「在行」来约见我...
- PMP试题 | 每日一练,快速提分 9.3
- 激光导航AGV最常见的控制算法有哪些?
- 能源消耗总量计算公式_能耗计算公式
- Python爬虫爬企查查数据
- 无人驾驶感知篇之传感器标定(二)
- 深度对话 | V 神纵论区块链和以太坊
- 下载python后怎么运行代码,怎样下载python的编译器
- 怎么判断是程序存在问题还是软硬件系统存在问题
- Vue小项目Mock.js的学习