直奔主题:
设f(n,m)表示 n 经分解后最大子项不超过 m 的非递减序列的种数,则有:
f(n,m) = f(n-m,m) + f(n,m-1)
两种情况:
1、至少存在一个最大子项为 m,然后分解 n-m
2、最大子项为 m-1
那么
ans(N) = f((N-k)/2, k) k=N,N-2,N-4...0(k表示中心的那个数,且为中轴线)
如果 N 为偶数,则要加上一种情况:中轴线不过任何数字
ans[N] += f(N/2, N/2);
直奔主题:
设f(n,m)表示 n 经分解后最大子项不超过 m 的非递减序列的种数,则有:
f(n,m) = f(n-m,m) + f(n,m-1)
两种情况:
1、至少存在一个最大子项为 m,然后分解 n-m
2、最大子项为 m-1
那么
ans(N) = f((N-k)/2, k) k=N,N-2,N-4...0(k表示中心的那个数,且为中轴线)
如果 N 为偶数,则要加上一种情况:中轴线不过任何数字
ans[N] += f(N/2, N/2);