zoukankan      html  css  js  c++  java
  • 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 是我出的多项式,欢迎各路神仙来爆切!

    路漫漫其修远兮,吾将上下而求索
  • 相关阅读:
    cmanformat
    mysql-sql语言参考
    jQuery 判断多个 input checkbox 中至少有一个勾选
    Java实现 蓝桥杯 算法提高 计算行列式
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 数独游戏
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
    Java实现 蓝桥杯 算法提高 成绩排序2
  • 原文地址:https://www.cnblogs.com/zzctommy/p/14190517.html
Copyright © 2011-2022 走看看