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 }
  • 相关阅读:
    游戏开发人员眼中的Unity 3D网页游戏測评报告
    MQTT---HiveMQ源代码具体解释(八)Netty-WebSocket
    RGB 与 (RGB转 YCbCr再转为 RGB)的图像
    Shader的语法
    10种软件开发中 over-engineering 的错误套路
    LeetCode——Min Stack
    nyist 82迷宫寻宝(一)(BFS)
    云计算生态系统
    Linux 查看CPU信息、机器型号等硬件信息
    学习新技术的10个建议
  • 原文地址:https://www.cnblogs.com/noblex/p/7726150.html
Copyright © 2011-2022 走看看