长方体的摆放(递归)值得一看

该博客讨论了如何将多个相同长方体(长x宽高为自然数)以递归方式堆叠成高度为N的柱形体。每层仅能放一个长方体,并且高度相同的摆放方式视为等价。博客中指出,对于给定的高度N(1≤N≤100),输出所有可能的摆放总数,保证总数小于10000000。例如,当高度为10,长方体尺寸为5x6x7时,总共有1种不同的摆放方式。
摘要由CSDN通过智能技术生成

一个长方体,长宽高分别为x,y,z,都为自然数。

现在要把若干个相同的长方体摆成高为N的一根柱形体。

每层摆1个,如果两种摆法的高度是一样的,则认为这两种摆法等价,所以每层只有三种摆法。

求一共有多少种摆法。

输入描述:
第一行为一个数字N,N>=1且N<=100,表示要摆放的高度
第二行为长方体的长宽高,x、y、z都为无符号整数,按升序排列。

输出描述:
摆法总数,已知该总数会小于10000000
示例1
输入
10
5 6 7
输出
1

设dp[i][j]为第i层,高度为j的方案数,那么第i+1层的高度为j+x j+y j+z的方案数都等于第i层的
方案数,所以可以得出递推式为:
dp[i+1][j+x]+=dp[i][j]
dp[i+1][j+y]+=dp[i][j]
dp[i+1][j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值