链接:https://www.nowcoder.com/questionTerminal/23a0c9e5b3eb4f37b9615766f0286e0c
来源:牛客网
现在有红,绿两种颜色的石头,现在我们需要用这两种石头搭建一个塔,塔需要满足如下三个条件: 1. 第1层应该包含1块石头,第2层应该包含两块,第 i 层需要包含 i 块石头。 2. 同一层的石头应该是同一个颜色(红或绿)。 3. 塔的层数尽可能多。 问在满足上面三个条件的前提下,有多少种不同的建造塔的方案,当塔中任意一个对应位置的石头颜色不同,我们就认为这两个方案不相同。石头可以不用完。
输入描述:
输入仅包含两个正整数,分别表示红和绿砖块的数量a,b(0<=a,b<=2*10^5,a+b>=1)。
输出描述:
输出和仅包含一个正整数,表示不同的方案数对1000000007取模的结果。
这道题目有点类似于双机调度问题,给出两个变量,让你求方案数。这种问题一般都是控制变量,通过求一个变量来控制另外一个变量。
对于这道题目,我的构想是用递归的方法来解决的,通过不断递归,递归到最深层次结果加1,累加起来就是结果,但是数字太大了,不论是时间还是空间都会超标。后来我也想到过用dp做,然而始终无法推出递推式,后来参考了别人的代码后发现,我的式子错误的地方在于没有包含到核心变量层数