在写HDU1028时,感觉要么是数学题,要么是有什么规律。。。数学太差,之前没听说过母函数。。所以这题看了会,没什么思路,于是果断看了题解。。。才知道有母函数这东西。。。
尽管才开始看出了是什么,但确实代码实现能力太差,而且在昨天睡前几分钟还是没怎么看懂,于是上午手算。。才大致明白,然后也AC了几题。。
按照HDU的PPT的代码。。记录下自己的想法吧~
0)次幂可以转换成坐标,系数可以算成值。
1) i = 2; 时,让K+=i; 可以让其达到类似于 x的2,4,6,8次幂 x的 3 6 9 12 次幂的效果。。
2) 两层的for 循环,达到相乘的效果 同时,j + k <= n;因为最后输出的是a[n] 所以,大于n的完全不需要计算的。。就像n = 4 时,是有机会算到x的7次幂,暂时不需要。
3)才开始想的是,每次(1 + x^3 + x^9 + x^12)这种形式,既然前边系数都是1,那么碰到了a[k + j]++ 就好了,但是,如果a[3] = 2 =〉 2 x^3 如果出现 3x^2 *x = 3x^3 那么最后a[3] = 5。所以,后边的数会乘到前边数,继承了系数。。。同时,也不能在那个代码上,直接用一个数组替换,因为,每次都即时改变了,而算的话,要一轮结束才更新。
PS:思维可能过于片面,可能会有更好的实现代码吧。。。努力学习吧~