nyoj 139 我排第几个--康拓展开

时间:2021-08-29 09:36:34

我排第几个

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

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

输入
第一行有一个整数n(0<n<=10000);
随后有n行,每行是一个排列;
输出
输出一个整数m,占一行,m表示排列是第几位;
样例输入
3
abcdefghijkl
hgebkflacdji
gfkedhjblcia
样例输出
1
302715242
260726926

代码:

 #include "stdio.h"   //nyoj 139 我排第几个--康拓展开
#include "string.h" #define N 15 long long A(int x) //求阶乘
{
long long ans = ;
for(int i=; i<=x; ++i)
ans = ans*i;
return ans;
} int main()
{
int T;
int a[N];
int num[N];
char str[N];
int i,j;
scanf("%d",&T);
getchar();
while(T--)
{
scanf("%s",str);
int len = strlen(str);
for(i=; i<len; ++i)
{
a[i] = str[i]-'a'+;
num[i] = a[i]-;
}
long long ans = ;
for(i=; i<len; ++i)
{
ans += num[i]*A(len-i-);
for(j=; j<len; ++j)
{
if(a[j]>a[i])
num[j]--;
}
}
printf("%lld\n",ans+);
}
return ;
}

nyoj 139 我排第几个--康拓展开的更多相关文章

  1. nyoj 139——我排第几个&vert;&vert; nyoj 143——第几是谁? 康托展开与逆康托展开

    讲解康托展开与逆康托展开.http://wenku.baidu.com/view/55ebccee4afe04a1b071deaf.html #include<bits/stdc++.h> ...

  2. 康拓展开 &amp&semi; 逆康拓展开 知识总结&lpar;树状数组优化&rpar;

    康拓展开 : 康拓展开,难道他是要飞翔吗?哈哈,当然不是了,康拓具体是哪位大叔,我也不清楚,重要的是 我们需要用到它后面的展开,提到展开,与数学相关的,肯定是一个式子或者一个数进行分解,即 展开. 到 ...

  3. 【康拓展开】及其在求全排列第k个数中的应用

    题目:给出n个互不相同的字符, 并给定它们的相对大小顺序,这样n个字符的所有排列也会有一个顺序. 现在任给一个排列,求出在它后面的第i个排列.这是一个典型的康拓展开应用,首先我们先阐述一下什么是康拓展 ...

  4. ACM&sol;ICPC 之 BFS&lpar;离线&rpar;&plus;康拓展开&lpar;TSH OJ-玩具&lpar;Toy&rpar;&rpar;

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

  5. ACM&sol;ICPC 之 BFS&lpar;离线&rpar;&plus;康拓展开 &lpar;HDU1430-魔板&rpar;

    魔板问题,一道经典的康拓展开+BFS问题,为了实现方便,我用string类来表示字符串,此前很少用string类(因为不够高效,而且相对来说我对char数组的相关函数比较熟),所以在这里也发现了很多容 ...

  6. bnuoj 1071 拼图++(BFS&plus;康拓展开)

    http://www.bnuoj.com/bnuoj/problem_show.php?pid=1071 [题意]:经过四个点的顺逆时针旋转,得到最终拼图 [题解]:康拓展开+BFS,注意先预处理,得 ...

  7. hdu 1043 pku poj 1077 Eight &lpar;BFS &plus; 康拓展开&rpar;

    http://acm.hdu.edu.cn/showproblem.php?pid=1043 http://poj.org/problem?id=1077 Eight Time Limit: 1000 ...

  8. 九宫重拍&lpar;bfs &plus; 康拓展开&rpar;

    问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着.与空格子相邻的格子中的卡片可以移动到空格中.经过若干次移动,可以形成第二个图所示的局面. 我们把第一个图的局面记为:12 ...

  9. 8数码,欺我太甚!&lt&semi;bfs&plus;康拓展开&gt&semi;

    不多述,直接上代码,至于康拓展开,以前的文章里有 #include<iostream> #include<cstdio> #include<queue> using ...

随机推荐

  1. ORACLE数据库用户账号处于expired状态如何处理

    账户过期,必须要用户更改密码, 账户才能重新使用. 但有些时候, 因为各种原因, 我们并不知道原密码的明文是什么,但很多时候又不能修改已有密码,好在可以用原密码来更改密码. 在11G中,dba_use ...

  2. POJ 3225 &lpar;线段树 区间更新&rpar; Help with Intervals

    这道题搞了好久,其实坑点挺多.. 网上找了许多题解,发现思路其实都差不多,所以就不在重复了. 推荐一篇比较好的题解,请戳这. 另外,如果因为可能要更新多次,但最终查询只需要一次,所以没有写pushup ...

  3. Jquery 获得服务器控件值的方法小结&lpar;转&rpar;

    由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法. <!--服务器控件代码:--> <asp:Tex ...

  4. Shell脚本生成网页版相册浏览器

    今天学到了一招,那就是使用脚本制作一款网页版相册浏览器.先上图吧. 必备基础 操作系统: 以linux为内核的操作系统都行 编程语言:Shell(bash)脚本,相关基础知识即可 下载工具:wget ...

  5. UNIX网络编程——TCP&sol;IP简介

    一.ISO/OSI参考模型 OSI(open system interconnection)开放系统互联模型是由ISO(International Organization for Standardi ...

  6. 关于Ajax异步请求(实时刷新)

    1.需求:想要做成动态实时刷新获取数据库的值 2.例子 3.代码逻辑: <script type="text/javascript"> var Seconds=1000 ...

  7. webapi 自定义缓存实现

    定义一个Filter public class MyOutputCacheAttribute : ActionFilterAttribute { MemoryCacheDefault _cache = ...

  8. jquery有几种选择器?

    ①.基本选择器:#id,class,element,*: ②.层次选择器:parent > child,prev + next,prev ~ siblings: ③.基本过滤器选择器::firs ...

  9. hdu4289 Control 最大流最小割

    You, the head of Department of Security, recently received a top-secret information that a group of ...

  10. &lbrack;转&rsqb;sqlserver转换为Mysql工具使用

    https://files.cnblogs.com/files/miantiaoandrew/mss2sql_v5-3.zip 1.首先下载工具,链接如上 2.解压出来,运行mss2sql.exe 3 ...