思惟题练习专场-数学篇

转载请注明地址:http://www.cnblogs.com/LadyLex/p/8885799.htmlhtml

太可怕了终于仍是来作数学了……算法

以前只是看过一点点反演相关的东西数组

以前的总结:杜教筛 反演 数据结构

提高的目标是思惟,尤为是找到关键性质做为突破口的能力。函数

不可能找到一种解决全部问题的通式,尤为是在数学这里……因此培养观察分析关键性质的能力就尤其重要学习

这篇博客也将重点记录每道题的突破关键点……但愿本身在2天时间里能有所提升……优化

一,UOJ#62

  这道题是反演套反演套反演233333ui

  这题的经验:spa

  首先,反演的过程当中不必定要出现$\mu$,咱们能够直接用for循环$O(nln_{n})$处理。htm

  因此不能被$\mu$局限住思惟,而要观察两个函数之间的相互关系

  第二,在遇到一个形如$f(gcd(i,j))$很差化开的时候,咱们有这样一种思路:

  寻找/构造一个新函数$g(x)$,使得$f(n)=\sum_{d|n}g(d)$

  这样的话,咱们能够把$f(gcd(i,j))$的限制变成$\sum_{d|i,d|j}g(d)$

  这样也许就能找到新的突破口,好比咱们能够把$d|i$和$d|j$这两个条件拆开利用,或者改变枚举顺序……之类的

  第三,数论和线性代数之间也是有密切联系的。以前一直没有注意到这一点

  好比咱们的反演过程其实能够表示为乘一个逆矩阵

  可是因为莫比乌斯反演的矩阵比较特殊,因此咱们能有方便的作法。

  此外,此题也有用线性代数理解的方法:咱们依然使用上面那个$g$函数,定义下面三个矩阵:

  $A_{ij}=[j|i]$,$B_{ij}=[i==j]g(i)$,$C_{ij}=[i|j]$,手推一下能够发现$f=A*B*C$,

  这里说一下观察到的一个小性质

  若是咱们给一个矩阵A乘一个只有对角线上有元素的矩阵B,那么效果至关于给第i行每一个

  很棒的一点是这三个矩阵的逆都是能够求的,那么咱们就得到了$O(n^2)$直接算逆的作法

  最后推式子优化也能够作到$O(nlog_{n})$

  (不过我我的感受仍是上面三次反演好理解)

  *咱们具体说一下莫反的线性代数形式

  咱们知道,$\sum_{d|n} \mu(d) == [n==1]$

  那么变一下形,就会有$[m|n] \sum_{d|\frac{n}{m}}\mu(d)==[\frac{n}{m}==1]==[n==m]$

  若是咱们把$n$和$m$当作下标,上面这个就是一个单位矩阵

  接着,咱们枚举$c=m*d$,给原式继续变形,则有:

  $ \sum_{c} [c|n][m|c]\mu(\frac{c}{m})$

  如今,咱们找两个矩阵A和B,使得$A_{cn}==[c|n]$,$B_{mc}==[m|c]\mu(\frac{c}{m})$

  那么会有$BA==I$,这里$I$为单位矩阵

  从上面$f$和$g$的定义咱们又知道$f=g*A$

  两边同乘$B$,那么$f*B=g$,你会发现这也就是莫比乌斯反演的那个式子

后来又看了看vfk老师的ppt

发现一句很棒的话,这种用反演把二元限制关系拆成独立的思想很不错

体现有fwt,dft,fmt,以及普通的莫比乌斯反演等等

二,loj2513

md傻逼高斯消元有80分部分分?

边界判错了能有20分,真是感动

而后看了一眼徐明宽老师的标程,一眼发现一个叫gauss的函数???

那我仍是本身想吧,这什么牛逼题啊

而后把矩阵输出了出来

发现是个下三角矩阵

md那我还n^3个jb啊,这样直接n^2消元就好了

而后这道水题就作完了,但是我却打了一上午这个题

怎么回事?回忆一下,我一开始想了不能过数据的统计方式,加和而后除以总的方案数

打了一个半小时才打完裸消元,而后交上去,发现不对

而后才改变了计算方式,而后又调了一个多小时才发现那个边界

而后拿到70分以后发现了性质……

…………可能我与出题人心灵不相通吧……

不过下次作题的时候要先考虑好全部的式子和边界状况,

边打边想很容易漏状况

这两天玩高斯消元发现了新思路:观察式子/矩阵,能够获得$O(n^{2})$甚至$O(n)$的消元

其实就是手动枚举代替for循环233333


这里是分割线,此次我效率好低啊……只作了这一点题……

毒瘤之间的交流

接下来就是持续一上午的讲题环节

因为本身是个傻逼,过后才发现有不少精彩的部分都再本身走神的时候错过了

悟以往之不鉴,知来者之可追……之后要提升效率,不能让本身失望啊……

感受前几天作题的时候和别人讨论的时候效率极其低下

之后在作题的时候要先避免讨论啊……感受本身效率低好有负罪感啊……对不起本身的目标啊……

加油加油!

那么……来看一看此次讲的题目

因为多项式部分听的比较认真就先说一下多项式吧……

首先此次我终于解决了一个问题:这些XXT是怎么构造出来的

感谢RYF的讲解,虽然咱们两个坐到一块儿讨论老是会变得效率低下2333333

如今咱们想要一个复杂度优于n^2的变换,知足有正变换和逆变换(变换矩阵可逆)

怎么求解呢?因为咱们变换都是“正变换-->对应位相乘-->逆变换”这样一个过程

咱们能够把目标式和计算式两个正变换写在等号两边,化一下式子,你会发现你构造的变换矩阵应该知足

$T_{k,i} * T_{l,i} = T_{k#l,i}$

这样就特别棒了,好比,咱们手解个方程能够解出$fwt$的矩阵

此外,若是下标系统知足循环律的话咱们还能够利用单位根构造一下,好比$dft$

其实这些变换都是有一个if语句的限制关系摆在那里让咱们很难处理

通常限制有mod关系,相等的关系,位运算的关系……

而后,咱们须要结合这个语句寻找把限制转化的方法

好比,循环卷积的if是mod,咱们利用单位复数根求和的特判找到拆开mod的方法

fwt的或/与变换,咱们把p|q==r变成p属于r&&q属于r来拆限制,而后用高维前缀和作变换

反演中的gcd咱们寻找d|i && d|j 来拆限制

二项式反演,咱们用$(1-1)^n$的展开式代替$n==m$,而后作反演等等

感受本身对反演以及变换有了新的认识……

另外彷佛学到了一个新技巧,好几道题都用了这个变形:$ik=((i+k)^2-i^2-k^2)/2$

另一种形式是 $ik=((i+k)(i+k-1)-i(i-1)-k(k-1))/2$,这种写法多见于任意长度循环卷积中

不过这个科技我只是略微听了一下,没有实际实现过……待补坑

这样,咱们若是在卷鸡的时候有一项的指数有ik堆在一块儿的状况,

用这个技巧就能够在卷的时候把指数中同时存在$ik$的指数拆开,而后就能够作了

以及lc的题对于差分的应用真的很6啊……

我的感受本身一直不会用差分……就很虚弱

咱们差分的用处有不少,好比维护信息的时候能够把区间加改为单点加,区间加等差数列改为区间加……等等

还能够用于推式子……若是表达式中有难处理的东西也许能够差分掉

裂项相消法

错位相减法

而后还能够经过差分观察性质,好比以前那个置换的题,发现转移式子至关于交换差分的那个

还能够经过差分处理一些有单调性的题目,好比维护后缀最大值的差分数组的那题

可是……说了这么多要是真碰到题目仍是不会用23333

反演的部分有一个不错的题目是srs的bzoj2627:JZPKIL

这题也挺不错的……我没想到的一个地方是分解质因子

具体来讲,因为n很大,咱们有意识的把有积性的函数都归到一块儿,设他们为函数$F$

而后枚举n的质因子,那么$f(n)=\prod(f(pi^ki))$

而因为这是反演题因此他有个$mu$……在质因子只有一种的状况下,mu只有2种可能的状况有值:0次方的1和1次方的-1

而后咱们的式子就被简化了,就可作啦!

在式子中有mu的时候这种分解质因子的处理方法彷佛很经典

一我的的数论和循环之美两道经典题目中都有这种处理方式的应用

另外,yzh的题目也很不错

我的只能想出30分的部分分,并无推导更多的式子

其实换成枚举gcd就能够想出分数更高的算法?

正解是一个……$O(n^{\frac{3}{7}})$的算法,目前没有研究明白

看起来,一些数论题目(尤为是这些毒瘤反演)的复杂度分析也是很重要的一环

积分是经常使用的姿式

若是复杂度分析很差,可能会本身打错解,也可能不敢打正解

不过如今考试彷佛不会特别仔细的算时空复杂度

之后要注意这一点,避免由于这个浪费时间

接着是一些几率和博弈的题目

wq选的题目是一道很不错的博弈论(bzoj4220)

以前咱们说的博弈论都是sg函数等等模型或者结论的东西

可是事实证实,高端玩家们都不玩结论题了23333

这些博弈论题目更加注重“博弈分析”,即利用人类智慧,分析游戏的过程,考虑何时游戏决策会很优秀

真是烧脑啊……分析这个东西很是的考察思惟啊……

对于本题来讲,咱们首先能够分析两个玩家的决策,写出一个收益矩阵

而后……咱们会意识到,若是每一个人都使用单一策略,由于两人都是绝顶聪明的,因此两我的就永远不会肯定一个稳定的策略

而后咱们就会意识到咱们应该找一个带几率的稳定策略,使得两我的都没法经过调整策略使得本身收益增长,而对手不动

虽然这就是纳什均衡的模型吧……可是这个分析在不知道这个模型的状况下也是能够作出来的

在这以后,咱们求出那个平衡点的几率,这样咱们就得到了两我的的策略,而后就能够继续分析了……

这种博弈分析的题目我以前根本没见过,分析问题的思惟也没有特地去训练过

有时间的话,挑两道好题训练一下吧,也许能够和wq要两道

接着,ltr的题目彷佛是那种思惟难度很高代码很短的题目?

课前看到这题就没有思路……结果讲的时候也没有听懂,一点思路都没有

因此GG了……

而后……感受很内疚的是在听wxhao的几率数据结构(loj2263),

以及wxhui的量子态fwt(uoj328)的时候我走神了……

因此基本处于懵X状态,没能从题目上面收获不少

感受亏死了啊啊啊……此次有3道好题都没有学习到,不知道还有没有时间补题……

最后是总共的题表,按讲课顺序2333

uoj62 zzh

bzoj2627 srs

loj509 yzh

原创题+cf901E lc

loj6271/548 ryf

uoj328 wxhui

bzoj4220 wq

loj552 ltr

loj2263 wxhao

bzoj4820 wzz

再总结一下数学专项的考试题?

如今看来其实大部分都是上面写过的东西?

明明是考了以后才写的

有一个题目我以为特别新奇,就是那个找循环节而且利用了BSGS的题

感受本身作数学题的时候最不会想到的就是循环节了……虚弱……

而且用BSGS找循环节我也是没有想过的,单知道能够求A^x=B (mod C)

可是其实那个也是循环节啊……总之本身仍是没有这个意识

若是有循环节的话咱们就能够减小本来按题目定义是无穷的计算量

以前有一个题意是作无限次fwt的题也能够用找循环节作

本身找循环节的意识基本为0……考试基本想不起来

要培养一下这个意识……

而后有一个奇形怪状的gauss题目

利用了一大波指望的线性性

那个题思惟难度也挺高的,很nb

最后的总结:

此次数学专题的学习彷佛就结束了……

感受本身仍是很虚,见到题仍是不会作……

可是此次学到了很多新的思路,见到了很多新题……

接下来的话,大概会和最近同样找一些专题来作

发现有的数据结构题也挺妙的,数据结构不必定都是毒瘤题

之后找一些不错的数据结构题和制胡窜题目看成专题吧

以上。

相关文章
相关标签/搜索