zoukankan      html  css  js  c++  java
  • 【洛谷】P1754 球迷购票问题(基础dp)

    题目背景

    盛况空前的足球赛即将举行。球赛门票售票处排起了球迷购票长龙。

    按售票处规定,每位购票者限购一张门票,且每张票售价为50元。在排成长龙的球迷中有N个人手持面值50元的钱币,另有N个人手持面值100元的钱币。假设售票处在开始售票时没有零钱。试问这2N个球迷有多少种排队方式可使售票处不致出现找不出钱的尴尬局面。

    题目描述

    例如当n=2是,用A表示手持50元面值的球迷,用B表示手持100元钱的球迷。则最多可以得到以下两组不同的排队方式,使售票员不至于找不出钱。

    第一种:A A B B

    第二种:A B A B

    [编程任务]

    对于给定的n (0≤n≤20),计算2N个球迷有多少种排队方式,可以使售票处不至于找不出钱。

    输入输出格式

    输入格式:

    一个整数,代表N的值

    输出格式:

    一个整数,表示方案数

    输入输出样例

    输入样例#1: 复制
    2
    
    输出样例#1: 复制
    2
    

    说明

    必开QWORD

    测试:N=15

    回溯:1秒(超时)

    模拟栈:大于10分钟

    递归算法:1秒(超时)

    动态规划:0 MS

    组合算法:16 MS

    -----------------------------------------------------------------------------------------

    分析:又回到dp啦。

     1 #include <cstdio>
     2 #include <algorithm>
     3 using namespace std;
     4 long long dp[25][25];//后面还有i个50,j个100 
     5 int main()
     6 {
     7     int n;
     8     scanf("%d",&n);
     9     for(int i=1;i<=n;i++) dp[i][0]=1; 
    10     for(int i=1;i<=n;i++)
    11     {
    12         for(int j=1;j<=i;j++)//j>i的话就找不开了 
    13         {
    14             dp[i][j]=dp[i-1][j]+dp[i][j-1];
    15         }
    16     }
    17     printf("%ld
    ",dp[n][n]);
    18     return 0;
    19 }
  • 相关阅读:
    密码朋克的社会实验(一):开灯看暗网
    ThinkPHP5框架缺陷导致远程命令执行(POC整合帖)
    SQL基本注入演示
    从SQL注入到内网漫游
    业务逻辑漏洞探索之敏感信息泄露
    Web安全之XSS Platform搭建及使用实践
    iOS URL Schemes与漏洞的碰撞组合
    phpcms2008远程代码执行漏洞
    使用RSA加密在Python中逆向shell
    源码级调试的XNU内核
  • 原文地址:https://www.cnblogs.com/noblex/p/7726150.html
Copyright © 2011-2022 走看看