zoukankan      html  css  js  c++  java
  • poj 1850

    递推,统计,数位DP水题,但这题在网上归为组合数学,不知道思路

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #define LL long long
    using namespace std;
    LL f[11][30];
    int main()
    {
        char s[11];
        int i,j,k;
        for(i=0;i<26;i++) f[0][i]=1;
        for(i=1;i<10;i++)
        {
            for(j=0;j<(26-i);j++)
            {
                f[i][j]=0;
                for(k=j+1;k<(26-i+1);k++)
                {
                    f[i][j]+=f[i-1][k];
                }
            }
        }
        while(cin>>s)
        {
            int l=strlen(s);
            LL ans=0;
            for(i=0;i<l-1;i++)
            {
                for(j=0;j<(26-i);j++) ans+=f[i][j];
            }
            for(i=0;i<l;i++)
            {
                if(i==0) j=0;
                else
                {
                    if(s[i]<=s[i-1]) break;
                    j=(s[i-1]-'a')+1;
                }
                for(;j<(s[i]-'a');j++)
                {
                    ans+=f[l-1-i][j];
                }
            }
            if(i==l) printf("%I64d\n",ans+1);
            else printf("0\n");
        }
        return 0;
    }
    



  • 相关阅读:
    day10 作业
    文件操作
    字符编码
    元组、字典、集合内置方法, 深浅拷贝
    day07作业
    一周总结
    mysql操作进阶
    mysql操作篇续
    mysql-操作篇
    mysql的安装
  • 原文地址:https://www.cnblogs.com/lj030/p/3065560.html
Copyright © 2011-2022 走看看