码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ 139 我排第几个?

时间:2014-05-22 12:58:50      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:nyoj 139 我排第几个

我排第几个

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

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

输入
第一行有一个整数n(0<n<=10000);
随后有n行,每行是一个排列;
输出
输出一个整数m,占一行,m表示排列是第几位;
样例输入
3
abcdefghijkl
hgebkflacdji
gfkedhjblcia
样例输出
1
302715242
260726926
AC码:
#include<stdio.h>
const int f[12] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800};
int main()
{
	int i,j,n=0,sum=0,count=0,num[12];
	char ch[13];
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s",ch);
		sum=1;
		for(i=0;i<12;i++)
		{
			num[i]=ch[i]-96;
			count=num[i]-1;
			for(j=i-1;j>=0;j--)
			{
				if(num[j]<num[i])
					count--;
			}
			sum+=count*f[11-i];
		}
		printf("%d\n",sum);
	}
	return 0;
}


NYOJ 139 我排第几个?,布布扣,bubuko.com

NYOJ 139 我排第几个?

标签:nyoj 139 我排第几个

原文地址:http://blog.csdn.net/u012804490/article/details/26209145

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!