zoukankan      html  css  js  c++  java
  • nyoj 139 我排第几个

    我排第几个

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

    难度:3

    描述

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

    输入

    第一行有一个整数n(0<n<=10000);
    随后有n行,每行是一个排列;

    输出

    输出一个整数m,占一行,m表示排列是第几位;

    样例输入

    3

    abcdefghijkl

    hgebkflacdji

    gfkedhjblcia

    样例输出

    1

    302715242

    260726926

    #include<stdio.h>
    int jc(int n)
    {
    	int sum=1;
    	if(n<=1)return sum;
    	else sum=n*jc(n-1);
    	return sum;
    }
    int main()
    {
    	int n,i,j,k;
    	char a[13],b[]={"abcdefghijkl"};
    	scanf("%d",&n);
    	while(n--)
    	{
    		long sum=1;
    		scanf("%s",a);
    		for(i=0;i<12;i++)
    		{
    			j=0;
    			k=i;
    			if(a[i]>'a')
    			{
    		        for(k=0;k<i;k++)
    		        if(a[i]>a[k])
    		        j++;
    				sum+=(a[i]-'a'-j)*jc(11-i);
    		    }
    		}
    		printf("%ld
    ",sum);
    	}
    	return 0;
    }        
    

      

  • 相关阅读:
    spring reference
    Connector for Python
    LDAP
    REST
    java利用泛型实现不同类型可变参数
    java细节知识
    事务隔离的级别
    servlet cdi注入
    session and cookie简析
    CORS’s source, principle and implementation
  • 原文地址:https://www.cnblogs.com/zhangliu/p/7052675.html
Copyright © 2011-2022 走看看