zoukankan      html  css  js  c++  java
  • 题目1547:出入栈

    题目1547:出入栈

    时间限制:1秒
    内存限制:32 兆
    特殊判题:
    提交:742
    解决:249



     
    题目描述:
     
    给定一个初始为空的栈,和n个操作组成的操作序列,每个操作只可能是出栈或者入栈。
    要求在操作序列的执行过程中不会出现非法的操作,即不会在空栈时执行出栈操作,同时保证当操作序列完成后,栈恰好为一个空栈。
    求符合条件的操作序列种类。
    例如,4个操作组成的操作序列符合条件的如下:
    入栈,出栈,入栈,出栈
    入栈,入栈,出栈,出栈 
    共2种。

    输入:

    输入包含多组测试用例,每组测试用例仅包含一个整数n(1<=n<=1000)。

    输出:

    输出仅一个整数,表示符合条件的序列总数,为了防止总数过多超出int的范围,结果对1000000007取模(mod 1000000007)。

    样例输入:
    2
    4
    10
    样例输出:
           1
             2
             42
     
     

    状态F[i][j]表示入栈i次,出栈j次的序列总数,其中i>j。

    #include<stdio.h>
    const int MAX=500;
    long f[501][501];
    int main()
    {
        int n;
        for (int i=1;i<=MAX;i++)
            f[i][0]=1;
        for (int i=1;i<=MAX;i++)
            for (int j=1;j<=i;j++)
            {
                f[i][j]=f[i-1][j]+f[i][j-1];
                f[i][j]=f[i][j]%1000000007;
            }
        while(scanf("%d",&n)!=EOF)
        {
            if (n%2==1) printf("0
    ");
            else printf("%d
    ",f[n/2][n/2]);
        }
        return 0;
    }
  • 相关阅读:
    CodeForces
    codeforces 1250B The Feast and the Bus
    CF1038D Slime
    CodeForces-208C Police Station
    差分约束
    HDU 2586
    HDU 3948
    HDU 2222
    作业
    闰年的判断
  • 原文地址:https://www.cnblogs.com/Secontao/p/3606120.html
Copyright © 2011-2022 走看看