zoukankan      html  css  js  c++  java
  • poj1850

    是因为我好久不刷题了吗,这个题竟然做了俩小时,好几个思路都被推翻

    用dp数组预处理出范围是a->a+x字符y长度有多少种递增串

    然后例如def首先求a__有多少种情况那么自然后面就是只有b即dp[2][25],再求b__的情况c__,ab__,ac__.......

    然后求字符串长度小于输入长度的情况

    #include<iostream>
    #include<string.h>
    #include<stdio.h>
    using namespace std;
    const int maxa = 100;
    char str[maxa];
    int dp[10][30];
    int main(){
        for(int i = 0; i < 10; i++){
            for(int k = 0; k <= 26; k++){
                if(i == 0) dp[i][k] = 1;
                else for(int j = 0; j < k; j++)dp[i][k] += dp[i-1][j];
               /// cout<<dp[i][k]<<" ";
            }
        //puts("");
        }
        char str[12];
        while(scanf("%s", str)!=EOF){
            int ok = 0;
            for(int i = 1; str[i]; i++){
                if(str[i] <= str[i-1])
                    ok = 1;
            }
            if(ok){
                cout<<0<<endl;continue;
            }
            int n = strlen(str);
            int ans = 1;
            for(int i = 0; str[i]; i++){
                for(int k =i == 0?0:str[i-1]-'a'+1; k < str[i]-'a'; k++){
                    ans += dp[n-1-i][25-k];
                }
            }
            int m = 26;
            //cout<<ans<<endl;
            for(int i = 0; i < n-1; i++){
                ans += dp[i+1][25+1];
            }
            cout<<ans<<endl;
        }
    }
    View Code
  • 相关阅读:
    Codeforces 931A&1312A&172A
    STL常用容器(deque&stack&queue)
    Codeforces 141A&1368A
    Tensorflow安装和配置
    Spark高可用配置
    Spark安装及环境配置
    SSH免密登录
    大数据集群linux环境搭配
    Spark学习之RDD算子
    Spark学习之再谈RDD
  • 原文地址:https://www.cnblogs.com/icodefive/p/4260088.html
Copyright © 2011-2022 走看看