普通型母函数初级教程 --by 晓露式泠

普通型母函数初级教程 --by 晓露式泠

ID:6881526

大小:114.50 KB

页数:4页

时间:2018-01-29

普通型母函数初级教程 --by 晓露式泠_第1页
普通型母函数初级教程 --by 晓露式泠_第2页
普通型母函数初级教程 --by 晓露式泠_第3页
普通型母函数初级教程 --by 晓露式泠_第4页
资源描述:

《普通型母函数初级教程 --by 晓露式泠》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、普通型母函数初级教程                                                                              --by式泠(Bstring)这几天一直在做这一类的题目。看的教程主要是业余ACmer大神TankyWoo的个人博客以及一些母函数课件(稍后发上)。(ACMer新手请先打开传送门http://www.matrix67.com/blog/archives/120,仔细研读一下Matrix67的大作先,要理解如何生成一个普通型生成函数)再

2、进TankyWoo的传送门(http://www.wutianqi.com/?p=596)同时开着这三个网页标签。。。往下看。。。。核心的一句话就是“把离散数列和幂级数 一一对应起来”(好好理解!)(PS:这里的幂级数不考虑收敛,故作形式幂级数) 接下来读懂模板中的数组c1和c2以及 i, j, k,这三个变量的含义。请先暂时不管后面的细节,可以这样看c1和c2的关系:c1是个桶,c2是个瓢,c2舀水倒进c1,不断的倒,直到c1满了。所以我才说c1应改为answer,而c2 应该为currentanswer

3、或temp。 再在细节上理解c1和c2和 i,j,k先在纸上把依照题意抽象出的生成函数的多项式写出,比如这么一个多项式。。。。 其实这个模板就是模拟这个多项式的相乘过程,其实这里的x是浮云,所以我提议直接写成这样                                                  (0,1,2,3...)(0,2,4,6...)(0,3,6,9...)把指数这个衣服从x这个晾衣架下拿下来了多项式的相乘对于指数来说就是相加。c1数组在进入i,j,k的这个三重循环之前,有一个很重要

4、的初始化,c1的部分元素被刷成了1,这些1代表了第一个括号里的(0,1,2,3...)这些衣服原来所挂衣架x的系数。 下面进入很难理解的i, j, k三重循环。。。(洗把脸让脑袋清醒一下再看吧,孩纸们)——————————————————————————————————————用初中生的方法在纸上算一算(把省略号后面的数忽略吧)你可能会这样做:先乘前两个括号(木有数学公式插件,将就着看吧,主要得自己在纸上写):         1    *  1        +    1    *(x^2)   +   

5、1    *(x^4)+     x    *  1        +    x   *(x^2)   +   x    *(x^4)+(x^2)*  1       +(x^2)*(x^2)    +(x^2)*(x^4) =(1+x+2(x^2)+x^3+2(x^4)+x^5 +x^6)然后再拿这个括号的每一项去乘上原式中的第三个括号……(这里我就不再写了,累死,不过你要理解的话还真得在纸上写完去!)没错,边写边对照这个for循环。。。(聪明的孩纸应该已经看懂了) 下面为了负责还是要面向一下普通大众(没

6、看懂就继续往下看吧,这里木有人会笑你的) 这里的变量i一般情况下i与乘式的状态有关,比如模板中的i从2开始,就是说先拿前两项相乘,还有重要的一点是可以利用i控制乘式中指数的增量,这道题的增量控制太简单了,其他题目中的增量控制可能就要有些变化了。i的最大值是整个多项式全部展开之后得到的最大指数,这个值一般可以通过题意得到或估算得到一个稍大的值。 变量j是非常费解的,真正理解可能要掌握DP(动态规划)。。。按照TankyWoo的和Seagg的讨论结果,j应该指示的是前i个括号乘起来之后的第j个变量。注意j的控制

7、条件是整个多项式展开之后的最小指数到最大指数的范围,增量是j++,不管题目怎么变,这个增量是不会变的。 变量k比较好理解了,就是第i个括号里的每一项的指数了,控制条件一般有两个(这个模板只有一个)一个是k的上限控制,不可超过第i个括号里的最大指数;一个是j+k的上限控制,不可超过整个多项式全部展开之后得到的最大指数。核心的式子出现了 !               c2[j+k]+=c1[j];好了,现在该看你的草稿纸上的算式了,这个式子反映的就是你的乘式中指数相加的步骤。THINKKKKKKKKKKING

8、              NOOOOOOOOOOOOOW  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!接下来一直累加c2,这个j的for循环终了之后,进入到同层次的第二个j的for循环,到这一步,程序已经帮你算完了前两个式子的相乘过程,c2这个瓢的水已经装满了,倒进c1这个桶。 程序又跳转到了下一个 i的for循环了(其实你可以通过单步调试慢慢查看每一个变量的动态,个人认为这是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。