背包|长方体的摆放

时间限制:1秒
空间限制:32768K
一个长方体,长宽高分别为x,y,z,都为自然数。

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

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

求一共有多少种摆法。


输入描述:

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


输出描述:
摆法总数,已知该总数会小于10000000


输入例子1:
10 5 6 7


输出例子1:
1

#include #include using namespace std; int n; int a[5]; int cnt = 0; void finds(int t) { if(t==n) { cnt++; return ; } if(t>n)return ; for(int i = 0; i < 3; i++) { finds(t+a[i]); } return ; } int main() { cin>>n; for(int i = 0; i < 3; i++)cin>>a[i]; sort(a,a+3); finds(0); cout<

【背包|长方体的摆放】

    推荐阅读