李白打酒

话说大诗人李白,一生好饮,幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒 2 斗,他边走边唱:
无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店 m
m 次,遇到花 n
n 次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为 a
a,遇花记为 b
b。
例如:这一路上,他一共遇到店 5
5 次,遇到花 10
10 次,已知最后一次遇到的是花,他正好把酒喝光了。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
Input
输入一个整数 T
T,包括 T
T 组数据,每组数据包括遇到店的次数 m
m,花的次数 n
n。
Output
对于每组数据,输出李白遇到店和花的可能次序的个数。

input

1 5 10

output

14

#include <cstdio>
#include <cmath>
#include <iostream>

using namespace std;

int sum = 0;

int Li(int a,int b,int e)
{
    if( a == 0 && b == 0 && e == 1){
        sum = sum+1;
    }
    if(a>0){
        Li(a-1,b,e*2);
    }
    if(b>0 && e >0)
        Li(a,b-1,e-1);
    return sum;
}

int main()
{

    int n;
    cin>>n;
    int a,b;
    int S;
    while(n--){
        sum = 0;
        cin>>a>>b;
        S = Li(a,b-1,2);
        cout<<S<<endl;
    }
	return 0;

}
4 评论
  1. 看标题以为是个故事,点进来才发现原来是个事故。

  2. 幸好没有出现在历届高考题目里。

    1. 噗,我是个无敌菜鸟渣渣辉

留言