1398 母函数

比如说现在有3个括号相乘,形如()*()*(),现在前两个括号已经乘好了,那么C1[ ]放的是前两个括号乘好后的结果,然后把算好的结果再放到一个括号里再和第三个括号乘,这时乘的结果暂时放在C2[ ]数组里,等这趟运算结束后再把结果给了C1[ ]……所以当乘法做完后,C1[ ]放的是最终的结果,而C2[ ]只是起暂时存放的作用;这是因为C1[ ]不能同时放上次和当前运算完的结果,所以就找C2[ ]来暂时放当前算完的结果。

 比如 5  是1+4的  组成1的情况是2种   组成4的组合是4种 那组成5的情况就要 +上 2*4

两个数组就可以 是因为用滚动数组,指针来指向 当前和前一个运算数组
因为每次运算只和前一个系列的运算状态有关
c2[j+k]+=c1[j]; 
下标模拟的是 指数
c1[j]为数j的所有组合数
c2[j + k]为数(j+k)的所有组合数 = j的所有组合数 + 1(1代表k,k每次只能增i*i,根据题意)
原文地址:https://www.cnblogs.com/anderson0/p/1456126.html