zoukankan      html  css  js  c++  java
  • HDU 4055 Number String 计数DP

    设dp[i][j]表示以j开头的,长度为i的排列的数目。
    从字符串的后面到前面DP就得出答案了。
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    const int MAXN=1010;
    const int MOD=1000000007;
    char str[MAXN];
    int dp[MAXN][MAXN];
    int main()
    {
       // freopen("in.txt","r",stdin);
       // freopen("out.txt","w",stdout);
        while(scanf("%s",&str)!=EOF)
        {
            memset(dp,0,sizeof(dp));
            int n=strlen(str)+1;
            dp[1][1]=1;
            for(int i=2;i<=n;i++)
            {
                char ch=str[n-i];
                if(ch=='?')
                {
                    for(int j=1;j<=i-1;j++)
                    {
                        dp[i][1]+=dp[i-1][j];
                        dp[i][1]%=MOD;
                    }
                    for(int j=2;j<=i;j++)
                    {
                        dp[i][j]=dp[i][j-1];
                        //dp[i][j]%=MOD;
                    }
    
                }
                else if(ch=='I')
                {
                    dp[i][i]=0;
                    for(int j=i-1;j>=1;j--)
                    {
                        dp[i][j]=dp[i][j+1]+dp[i-1][j];
                        dp[i][j]%=MOD;
                    }
    
                }
                else if(ch=='D')
                {
                    dp[i][1]=0;
                    for(int j=2;j<=i;j++)
                    {
                         dp[i][j]=dp[i][j-1]+dp[i-1][j-1];
                         dp[i][j]%=MOD;
                    }
                }
            }
            int ans=0;
            for(int i=1;i<=n;i++)
            {
                ans+=dp[n][i];
                ans%=MOD;
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    Shell编程基础
    lenovo future leaer deveolpmetn program
    求1+2+...+n
    Linux下使用qq
    判断2个线段是否相交
    java大数相加
    Django路由系统
    Django框架
    HTTP协议及Django配置
    mysql索引
  • 原文地址:https://www.cnblogs.com/Aragaki/p/7310291.html
Copyright © 2011-2022 走看看