发现了一个巨简便的算法,跟01背包很像,但是枚举方式需要改一下,推导的过程可以看我的博客
|
|
|
|
sbwxc
|
|
找闺女找闺女
|
|
|
|
这道题需要用高精度乘法(背代码狗撸过).....然后就是主要的算法思想:将这个数分成以2为首项公差为1的等差数列,最后肯定会有一个余数然后从后往前将这个数均匀的撒在前几个数中(即+1),若分完一遍发现余数不为0则继续从后往前撒,然后相乘就好了,(这种题谁能想得出来啊喂QAQ.....)....最DT的是第一次交的时候发现c数组初始化不为0.....我明明开的是局部变量啊魂淡TAT....
|
|
动规+高精度乘法搞定
f[i]表示i分解后得到的最大乘积 需用一个二位的bool型数组标记每一个数在每种情况下是否用过 |