Happy Sequence
题意
找一组数列;要求长度为m,且数列的每一项都是前一项的倍数,且数字不大于n。
思路
这道题用动态规划去做,首先找状态,我们设数组f[i][j]表示以i结尾且长度为j的happy sequence个数。
那么状态方程则为:
f[i][j]=sum(f[k][j-1]),k为i的所有因子
解释一下状态方程:
既然f[i][j]表示以i结尾且长度为j的happy sequence个数,那么在此类数列后面再加个i的倍数(i*k%i==0)也是一个happy sequence,所以以i结尾的长度为j的happy sequence个数为所有的以i的因子结尾的长度为j-1的happy sequence个数之和。
参考代码
1 | #include<stdio.h> |
参考自网络