蓝桥杯之机器人塔

X星球的机器人表演拉拉队有两种服装,A和B。
他们这次表演的是搭机器人塔。

类似:

     A
    B B
   A B A
  A A B B
 B B B A B
A B A B B A

队内的组塔规则是:

A 只能站在 AA 或 BB 的肩上。
B 只能站在 AB 或 BA 的肩上。

你的任务是帮助拉拉队计算一下,在给定A与B的人数时,可以组成多少种花样的塔。

输入一行两个整数 M 和 N,空格分开(0< M,N<500),分别表示A、B的人数,保证人数合理性。

要求输出一个整数,表示可以产生的花样种数。

例如:
用户输入:
1 2

程序应该输出:
3

再例如:
用户输入:
3 3

程序应该输出:
4

资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms


思路:先构建最底层,然后上面的每一层都只能依次从下面的层得到唯一的解(注意:这里判重,重复了就return ;否则往下走)。所以,我们只需要求出最底层的排列顺序,并且注意到构建完最后一层即第一层的时候,a的个数和b的个数是不是刚刚好用完。


package 第七届;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;

//知道最底下的一层,就知道上面的是如何排列的了

public class Exe76 {
   

    static 

你可能感兴趣的:(蓝桥杯,蓝桥杯,算法竞赛,机器人塔)