• zstu深入浅出学算法020——DP——排队购票


    Description

    一常球赛开始前,售票工作正在进行中。每张球票为50元,现有k(1 <= k <= 30)人排队购票,其中n人手持50元的钱,剩余m人手持100元的钱,假设开始时售票处没有钱,求出售票处不出现找不开钱的不同排队种数(拿同样钞票面值的人换位置视为同一种排队)

    Input

    多组测试数据,先输入整数T表示组数,然后每组输入2个整数n和m

    Output

    对于每组测试数据输出1行,值为题目描述中的排队种数

    Sample Input

    2
    1 2
    1 1

    Sample Output

    0
    1

    HINT

     大意:DP是看两个状态之间的关系的不看整体,所以dp[i][j] = dp[i-1][j]是肯定满足的,如果n的数目大于等于m的话说明当前能找的开,dp[i][j] += dp[i][j-1];
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--){
            int dp[30][30];
            memset(dp,0,sizeof(dp));
            int n,m;
            scanf("%d%d",&n,&m);
            if( n < m){
                printf("0
    ");
                continue;
            }
            for(int i = 0 ; i <= n ; i++){
                for(int j = 0; j <= m ; j++){
                    if(i == 0) dp[i][j] = 0;
                    else if( j == 0 && i !=0 ) dp[i][j] = 1;
                    else   {
                      dp[i][j] = dp[i-1][j];
                      if( i >= j) dp[i][j] += dp[i][j-1];
                    }
    
                }
            }
            printf("%d
    ",dp[n][m]);
        }
        return 0;
    }
                    
    View Code
  • 相关阅读:
    shell数组
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍
    实现Java动态类载入机制
    Tomcat 阀
    MYSQL 常用命令
    MYSQL字符数字转换
    主题:MySQL数据库操作实战
    日本手机三大代理商的UA
    Java解析XML文档——dom解析xml (转载)
    MS sql server和mysql中update多条数据的例子
  • 原文地址:https://www.cnblogs.com/zero-begin/p/4442362.html
Copyright © 2020-2023  润新知