Re:从0开始的多项式生活

前言

临近 THUWC 和 NOIWC,觉得不搞点多项式可能拿不下大众分,正好没啥别的好搞,于是开坑。

upd: THUWC 没了,NOIWC 爆零了。

多项式这东西入门是真的难啊。

而我问身边一群多项式大佬(就是随手能切白兔之舞的那种神仙)的时候,他们都说“我不会多项式”。

于是我只好自闭,纯靠自学。

为了避免大家也出现这种情况,我决定记录一下我学习多项式的过程,对于初学多项式的人应该很有用吧!

这篇文章会告诉你,以我当时的视角,做的都是什么样的题,是怎么解题的。题目严格按照做的时间给出,题解就是我解题的过程,不大会上来直接扔做法,除非我自己一点思路没有去看题解;或者这题被我秒了。

我可能不会像cmd那样写一篇完整的总结,但是按照我做题的顺序,所有我一开始不知道的东西都会在第一次遇上时的题解里写到。

大概等我做掉白兔之舞就会把这篇文章公开了。你应该可以在这里找到我做的所有多项式题以及题解。

一些有用的资料

菜鸡 Karry5307 的多项式题单 1

CF 经典多项式题选编

【数学】生成函数基础(题单,by x义x)

OI-wiki 多项式部分

command_block的多项式计数杂谈

花姐姐的PGF

花姐姐的生成函数乱编

我的基础

EI 说,希望五年后的多项式教学不是从 FFT 开始。

建议先学生成函数。

大概 2020.2,听了Claris的多项式入门课,然而并没有入门。大概只会了这样几件事:

  • 会敲 NTT和FFT(大概率一遍敲对),大概了解了原理

  • 过了分治FFT板子,但是只会板子。

  • 会了多项式求逆。顺便he了上课的式子过了《城市规划》,自己完全不会推。

  • 学了MTT,但是只会7次的做法,很慢。

半搬上课的式子半推做了如下几题

P3338 [ZJOI2014]力

P3723 [AH2017/HNOI2017]礼物

鸽子了 n 个月。

2020.12月初开始为开坑做铺垫,准备NOIP过后开。然后因为某种奇怪的原因鸽子了(好像刷atc去了),终于准备要开了。

哦对了,说一下我目前的数学水平,数学还是很重要的。初三,中考概率AK数学,ZJ高考考纲内容全部学完(必修外加部分选修),抽代线代零基础(除了被OI逼着学的矩阵线性基高消,原理并不很透)。初二搞过一年高联。所以大概可以比得上一个重高普通班高二学生?

导数和积分一定要学,不然别搞多项式!!!

这段时间疯狂鸽子数学课看《具体数学》,翻到了第六章,然后从头又看了一遍。数学课太简单了,集体鸽子。

到底看到了些啥呢?我觉得就是会推基础二项式系数了,并且对生成函数有了一定了解(因为大部分看不懂/fad),这个对某个阶段的学习还是很有用的。

系统地学习

这部分开始实时记录。2020.12.24起。

做题速度瞬间变慢了,一道题可能好几个小时投下去。

板刷Karry5307的多项式题单1

然而这个还是回忆的几个星期前被 (color{black}{ exttt{c}}color{red}{ exttt{yn2006}}) 带着做了 P5641 【CSGRound2】开拓者的卓识 题解

【2020.12.24】学了多项式Ln,感觉挺简单的,然而感觉暂时没啥用,就咕了exp。

【2020.12.24】花了一个晚上独立切了 P5488 差分与前缀和 题解

【2020.12.25】CF755G PolandBall and Many Other Balls 花了一个下午,独立推了所有代数部分的式子,中间有一步组合意义没想到,看了题解。题解

【2020.12.26】跟着Karry5307的题解学了倍增FFT解法做了上面那题,题解写在后面了。

感觉做题的时间好长啊,但是自己能推到底或者退出大部分式子还是很开心的。

【2020.12.26】做了 CF623E Transforming Sequence ,刚开始状态设错了搞了好久,或许这也是套路?具体见题解。题解 。做题过程发现我MTT精度爆炸,重新学了预处理单位根的MTT,快了一倍,精度高了多少都不知道。

【2020.12.27晚+2020.12.28下午】没能成功推出 CF773F Test Data Generation ,推了一个数学式子完全不会优化。事实上从生成函数的角度入手会方便很多。看懂了题解感觉也不是很难,自己就是想不到/kk 。题解

【2020.12.28晚】复习了 P4721 【模板】分治 FFT ,很顺利的调完了,并且成功发现之前写的假掉了。。具体见 题解

【2020.12.29晚+2020.12.30上午】复习板子的目的是做 CF553E Kyoya and Train 。式子推到底了,看了2h不会写。看了题解看懂了,2h调不出来。最后发现出了点大问题,FFT写挂了。题解

板刷不动了,转生成函数以及数数方面。

【2020.12.30下午】首要的事情就是补上exp和开根。大概翻了翻command_block的计数杂谈的前半部分和 一篇题解,看题解里那个泰勒展开的链接理解了泰勒展开,虽然我非常不赞同泰勒展开那篇文章前半部分用的那些图(如果我有知乎号会直接踩,那些东西看起来让人恶心,而且在机房里看那些东西被抓到会惨的一撇) ,但是后半段讲的还是可以的。我建议大家倒着往上翻,翻到合适的位子开始看。那篇牛迭写的真的好(可能是因为我刚刚理解了泰勒展开忽然看懂了很多东西吧!),一下子懂了。我对于泰勒展开的理解

【2020.12.30晚】过了多项式开根。写道exp的时候发现太多数组没清空重构了一发多项式板子。准备水个多项式快速幂,发现数组没清空,一晚上没调出来。。。

【2020.12.31早】发现是求逆的锅,调出来了。修改了一下文章。在 多项式笔记(一) 里详细介绍了我学的东西,并且我都能理解(再也不是背板子了,真开心)

【2020.12.31下午】做出了 CF438E The Child and Binary Tree题解

【2020.12.31晚】秒了 UVA12298 Super Poker II题解

【2021.1.1下午】几下子秒出 CF1251F Red-White Fence 思路,NTT写挂还能过20的样例,调到怀疑人生。。题解

【2021.1.1晚】做出了 P4451 [国家集训队]整数的lqp拆分题解

【2021.1.2下午+晚】没能成功做出 P4389 付公主的背包 ,想想也不难。对于式子的敏感度不够啊/kk。题解

忽然感觉时间很紧张,毕竟 (2) 周之后就是THUWC,(4) 周之后就是WC。如果这东西不搞透学了等于白学。遂咕了一场模拟赛。后来有点后悔,毕竟不能只做多项式题,模拟赛还是得打。但是断网了,模拟赛题都没下,倒是开了一堆多项式博客和题目,那就搞多项式吧!

【2021.1.3早】重推 P4841 [集训队作业2013]城市规划 ,并且明白了 (exp) 的组合意义。题解

【2021.1.3早】做出了 P4491 [HAOI2018]染色 ,并且搞懂了对于二项式反演的一个误区。题解

【2021.1.3早】看了cmd的blog,大概懂了prufer序列,然后秒了 P5219 无聊的水题 I.午休之后码掉了.题解

【2021.1.3晚+2020.1.4早】推出了 P5339 [TJOI2019]唱、跳、rap和篮球题解

感觉有点做厌了,鸽子了两天搞DS。

【2021.1.7下午+晚】做出了 P4463 [集训队互测2012] calc ,学了 (O(n^2)) 递推 (exp),但是不会 P5850 calc加强版 ,其实加强版就是以一种非常高明的方法求出了自然数幂前缀和。题解

【upd2021.1.17】看了点伯努利数相关内容,其实这个就是用伯努利数求的前缀和。或许可以先浏览一下 多项式笔记(二) 再做题,这个是我一个多星期之后写的文章qaq。

【2021.1.7晚】做出了 P5860 「SWTR-03」Counting Trees题解

【2021.1.8上午】鸽子了模拟赛,40min先秒了CF997C Sky Full of Stars题解),然后开始看斯特林相关。

【2021.1.8上午】决定找一道斯特林数的题练手。找到的是 P6031 CF1278F Cards 加强版 ,推了半天不会,看题解,发现找错练手题了。

【2021.1.8下午】直接丢掉Cards加强版,不做了,超出能力范围太远。然后找到了另一到斯特林数题:P2791 幼儿园篮球题。由于有上午那题铺垫,哪怕题解都没看懂,这题被秒了。题解

所以,建议上面两题换顺序做!

【2021.1.8晚】不死心,并且做了cxk题感觉忽然悟了点什么,又开始搞 P6031 CF1278F Cards 加强版 ,自己重新推一遍,上午的也忘光了,因为根本没看懂。然后直接就推出来了/fad。题解

这就很离谱,上午明明题解没看懂啊,下午怎么直接秒题了,晚上怎么就会做了。。

【2021.1.9早】做了 P4827 [国家集训队] Crash 的文明世界 ,斯特林数部分推的很快,最后裂组合数搞dp方程卡了好久。。。题解

忽然觉得不对劲,想起来还有很多 GF 相关没有练习,PGF 甚至都不会,根据 cmd 给的练习,我还有 (4) 道 GF!!!

【2021.1.9早】决定去看点 PGF 内容,把GF补完再接着搞斯特林,找到的是上面资料里面花姐姐的那篇,cmd 的也结合着看,估计看不完,下午有时间就会接着看。

一算,时间来不及了,只有 (6) 天就 THUWC,最后3天肯定是找 CF 或者 atc 的 vp 练手感。wtf,三天能搞完 GF 剩余内容就很快了吧/fad。终究没赶上啊,原来希望在这之前能学完循环卷积的/kk。

但是还是得抓紧,THUWC 赶不上,NOIWC 可得赶上啊,(color{red}{ ext{20天倒计时}})

【2021.1.9晚】PGF 这东西真的 nb 啊,写个了 概率生成函数学习笔记 ,歌唱王国建议直接看题解吧,自己如果能只知道PGF基本推论在2h内做出来你已经是多项式大师了。后面就要自己做了。

【2021.1.10下午】打了mivik公开赛 ,T4是多项式题,场上切了,练了这么多还是有点用处的qwq。虽然那题裸爆了。不过也有点惊险,因为刚刚搞到第二类斯特林数,而且要是之前决定先结掉GF部分没搞第二类斯特林数就做不出来了qaq

忽然出了点问题,啥题都做不出来了,卡了好久了/kk

【2021.1.11下午+晚上】做CF923E Perpetual Subtraction。做了一下午脑子做炸了,到晚饭居然想睡觉,第一次体会到想题想到想吐的感觉(是物理上的想吐,大概是因为缺氧?)。因为积分不熟练只好拿初等方法推,推完了之后完全看不出就是一个多项式平移就能解决的问题,总而言之就是因为积分怎么学没做出来,学过的话大概率能切。题解

【2021.1.11晚】30min推出 P5162 WD与积木 ,一不小心求逆码炸了,第二天早上才AC。题解

【2021.1.12早】模拟赛T3多项式,拆了三个半小时式子拆出一个卷积,半小时来不及打直接GG。要加快推式子的速度了!不能一道题几个小时,你已经不是刚接触多项式了!!!

【2021.1.12下午+晚】数数已经进行了 (20) 天了,感觉好累啊。准备把 P5401 [CTS2019]珍珠 做出来就暂时放下GF,重开斯特林数。这题被我当作GF的结业测试了。于是下午硬刚,刚着刚着睡着了qaq,真的很累啊,完全没法集中注意力干脆睡一觉。起来了之后发现还是不会,只是稍微推进了一点进程。然后开始水,看rqy的WC游记,看到了什么题解里有写(。忽然受到了鼓舞+启发然后悟了,迅速推完切掉了,开心!!!题解

然后准备开斯特林数了,虽然之前已经开过一点了。

【2021.1.13】重开斯特林感觉无从下手。。。决定先把各种式子理清楚,于是有了 多项式笔记(二) 。然后做了 P4609 [FJOI2016]建筑师 ,接着准备做 CF960G Bandit Blues 这个双倍经验的时候,发现不会斯特林相关的多项式工业,于是有了 斯特林数和贝尔数的求法 。同时开两篇文章真累啊/youl

【2021.1.14早】学完了斯特林数的四种求法和贝尔数,完成了一篇文章。另一篇还要等欧拉数和斯特林反演,或许拉格朗日反演也会有。

【2021.1.14下午】做 CF960G Bandit Blues 。多项式平移打挂调了一会,由于约好打VP,就鸽子到了晚饭后,然后迅速调出来了。

【2021.1.14晚】晚上做了 CF961G Partitions 。感觉不是很难,想到了吸收率还没看出来,最后还是zhouakngyang指导了一下才看出来,感觉越学越菜了。题解

【2021.1.15下午】秒了 P4091 [HEOI2016/TJOI2016]求和 ,太水了。题解

鉴于前一天晚上打CF爆炸,G这个数数题开都没开到,被EF两道傻逼图论杀了。然后鸽子了一会多项式去搞了点图论。

做完那道图论跟同学吐槽,说多项式学了码力下降了啊。多项式只要式子推出来就能码出来,但是其他题都不会做了。

FP一听到我说觉得码力不行就来了劲,开始指导我,狂推大分块,最后被胁迫着写了 P4119 [Ynoi2018] 未来日记 ,所以鸽子了一天awa

【2021.1.17】学了点伯努利数相关,接着写多项式笔记(二),做了 P3711 仓鼠的数学题,有种非常奇妙的感觉qaq 。题解

【2021.1.17晚+2021.1.18】推 P4464 [国家集训队]JZPKIL 的式子。原本1.17晚上以为推完了的,结果发现复杂度假了,只好接着推。感觉挺毒瘤的,集训队互测就没什么良心题,集训队选手往死里出题太恶心了。1.18晚终于推出来了。题解

【2020.1.21】多项式笔记(二) 终于完工了!!!整理了好多东西,自己重新推了一遍清楚多了。然而这几天忘记记录做了哪些题了,那就一起说吧。学了伯努利数,做了 P3711 仓鼠的数学题题解)。复习了Pollard-Rho,搞了一天过了 P4464 [国家集训队]JZPKIL题解)。第二天又搞了一整天,学了P6800 【模板】Chirp Z-Transform,做了 P7102 [w3R1] 算题解),伯努利数告一段落。然后卡了NTT的常数,搞了半天,然而只是从1.2s->0.9s,效果不咋地。因为向w33z交了一份hack数据,被拉去验w3R2了。可是我多项式学傻了,完全验不动题。于是……

证了一整天欧拉数恒等式,太难证了;验了一天题,晚上做 CF1349F1 Slime and Sequences (Easy Version)题解),发现不会,双射没构造出来,看了题解/kk。然后就是发了这几天积累的题解以及笔记(二)。

【2021.1.23】做了 P5824 十二重计数法,看了点多点求值相关。不是很想更博客,笔记三先咕着。

【2021.1.24】学了 Fuyuki 的多点求值写法,然而还是被zaky吊打好几倍常数。

【2021.1.25】我决定连续vp到WC。多项式鸽子,WC前找手感。

【2021.1.27上午】同学们在打Lock out这个神奇赛制,玩了两场感觉像电竞。。。忽然想搞多项式了(((

【2021.1.27上午】快进到跳过快速插值和下降幂多项式开始看单位根反演,填上了FFT这个坑,终于不是背板子了。开了 多项式笔记(三) 这个坑,做了 LOJ #6485. LJJ 学二项式定理题解

结尾

啊,忘记更新了/wq。不过最近确实没怎么搞多项式,有点鸽子。但是门应该是已经入了。

az,笔记三就鸽子了,目前只有单位根反演,循环卷积,证了一遍 FFT,要看的私信吧。

最近有点乱做,比如 P7431 [THUPC2017] 小 L 的计算题P4351 [CERC2015]Frightful FormulaP5075 [JSOI2012] 分零食 都可以自己做出来,那么应该算是入门了,文章就先发表了。

【彩蛋】 EZEC Round 7 的 E 是我出的多项式,欢迎各路神仙来爆切!

路漫漫其修远兮,吾将上下而求索
原文地址:https://www.cnblogs.com/zzctommy/p/14190517.html