码迷,mamicode.com
首页 > 其他好文 > 详细

zstu.4019.排队购票(多维dp)

时间:2015-04-04 10:40:03      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

排队购票

Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 1264  Solved: 808

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

技术分享
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 const int N = 30 + 5 ;
 6 int dp[N][N];
 7 int T  ;
 8 int n,m;
 9 int main()
10 {
11     //freopen ("a.txt" , "r" , stdin ) ;
12     scanf("%d",&T);
13     while( T --)
14     {
15         memset(dp,0,sizeof(dp));
16         scanf("%d%d",&n,&m);
17         if(n < m ) {
18             puts ("0") ;
19             continue ;
20         }
21         for(int i = 0 ; i <= n ; i++)
22         {
23             for(int j = 0 ; j <= max(i,m) ; j ++)
24             {
25                 if(i == 0 )  dp[i][j] = 0 ;
26                 else if(j == 0 && i != 0 )dp[i][j] = 1 ;
27                 else
28                 {
29                     dp[i][j] = dp[i-1][j];
30                     if(i > j-1) dp[i][j] += dp[i][j-1];
31                 }
32             }
33         }
34        
35         printf("%d\n",dp[n][m]);
36     }
37     return 0 ;
38 }
View Code

 

zstu.4019.排队购票(多维dp)

标签:

原文地址:http://www.cnblogs.com/get-an-AC-everyday/p/4391674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!