关于什么是母函数 , 以及在现实生活中的应用 , 请大家详看 或者 HDU 母函数 PPT:
http://www.cppblog.com/MiYu/archive/2010/08/05/122290.html
对于给出的母函数模板 , 让人理解起来比较费劲的!以下给出几种解释 , 和自己理解!
//made by syx
//time 2010年9月11日 10:17:27
//母函数例题
自己理解:对于(#式)
第一个for给c1 和 c2 赋值 , 把上面#式的第一个括号(1+x+x^2+x^3+x^4+x^5+....)的系数给放在c1中,
从而再次计算从 # 的 第二个括号开始 , 所以 i 就是代表的# 式第几个括号,
而 用程序模拟手工计算 , 就是 先计算第一个括号 与 第二个括号 计算 , 把结果放到c2中,
在把结果与第三个括号计算 , 把结果放到c2中 , 在和第四个括号计算,........
所以j 就是指的 已经计算出 的 各项的系数 ,比如第一次之后 1+x+x^2+x^3+x^4+x^5+... , j=0指向1 ,
j=2 指向x , .... , 而 k 就是指 将要计算的那个括号中的项 , 因为第i个括号 , 中的指数为0 , i , 2i....所以 k要 + i ;
而结果 c2[j+k] += c1[j]; 就是把 以计算出的 j项的系数 和 现在正在计算的括号的k项相乘 , 所以指数为j+k , 所以结果放到c2[j+k] 中 , 这就是这几个for的作用!
最后刷新下结果 , 下一组数据计算!
//整数拆分母函数模板
#include <iostream>
using namespace std;
const int lmax=10000;
int c1[lmax+1],c2[lmax+1];
int main()
{ int n,i,j,k;
while (cin>>n)
{
}
return 0;
}