zoukankan      html  css  js  c++  java
  • POJ 1850

    一道比较复杂的模拟题

    一步步从字母的最前方计算到最后方即可

     1 #include <cstdio>
     2 #include <cstring>
     3 
     4 using namespace std;
     5 #define ll long long
     6 
     7 ll sum[10];
     8 char s[12];
     9 
    10 void init()
    11 {
    12     for(int i=1 ; i<=9 ; i++){
    13         ll tmp = 1;
    14         for(int j=26 ; j>26-i ; j--)
    15             tmp *= j;
    16         for(int j=1 ; j<=i ;j++)
    17             tmp /= j;
    18         sum[i] = sum[i-1] + tmp;
    19     }
    20 }
    21 
    22 bool ok(int len)
    23 {
    24     for(int i=1 ; i<len ; i++){
    25         if(s[i] - s[i-1] <= 0) return false;
    26     }
    27     return true;
    28 }
    29 
    30 ll C(int n , int m)
    31 {
    32     ll ans = 1;
    33     for(int i=n ; i>n-m ; i--)
    34         ans *= i;
    35     for(int i=1 ; i<=m ; i++)
    36         ans /= i;
    37     return ans;
    38 }
    39 
    40 int main()
    41 {
    42   //  freopen("a.in" , "r" , stdin);
    43     init();
    44     while(scanf("%s" , s) != EOF)
    45     {
    46         int len = strlen(s);
    47 
    48         if(!ok(len)){
    49             puts("0");
    50             continue;
    51         }
    52 
    53         ll ans = sum[len-1];
    54         for(int i=0 ; i<len ; i++){
    55             if(i == 0){
    56                 for(int j=1 ; j<(int)(s[i]-'a'+1) ; j++){
    57                     ans += C(26-j , len-1-i);
    58                 }
    59             }
    60             else{
    61                 for(int j=(int)(s[i-1]-'a'+2) ; j<(int)(s[i]-'a'+1) ; j++){
    62                     ans += C(26-j , len-1-i);
    63                 }
    64             }
    65         }
    66         ans ++;
    67         printf("%I64d
    " , ans);
    68     }
    69     return 0;
    70 }
  • 相关阅读:
    安装pandas所需c及c++依赖
    linux中文临时生效
    标维参考命令
    linux运维
    prop属性
    centos python虚拟环境安装
    centos7&python3.6uwsgi安装
    react 入坑笔记(六)
    js 实现数据结构 -- 集合(MySet)
    js 实现数据结构 -- 链表(LinkedList)
  • 原文地址:https://www.cnblogs.com/CSU3901130321/p/4244329.html
Copyright © 2011-2022 走看看