2.15

上午计算几何,下午多项式

讲了求凸包,直径,旋转卡壳,半平面交,都是计算几何比较基础的,但是依然难入门

多项式有拉格朗日插值,fast fast tle 和 nan tan tan

 

FFT求的是多项式乘法,并且多项式次数都是2的次幂,不够就硬补0

给你几个x,往多项式里代,最终求粗来的对应关系可以表示一个多项式

也就是点值表示法

平常求多项式乘法就是n方的,慢但是直观

但是它还有一个很有趣的性质

那就是如果给出的是点值表示法,并且两个多项式的x分别对应相等,那么把y对应相乘,就能$ O ( n ) $的获取乘积的点值表示法

FFT就是解决这个而生的,总体nlog

nlog求值,n求点值乘法,olog插值

求值的时候代入的是wn的0次方到n-1次方

把多项式按照次幂奇偶分成两个序列a1a2

加起来变成a,a=a1(x^2)+x*a2(x^2)

其中a2的系数是从a2里提出来的

那么a1和a2仅仅是展开形式后的系数不同了

就有a=a1(wkn/2)+a2(wkn/2)*wnk

递归求解

 

FFT有个迭代优化,防止MLE,就是每次重复利用内存,按照顺序存储

NTT就是把FFT所求的单位根(w) 换成逆元就行

上午凸包旋转卡壳大体就是一点一点确定

半平面交用dq维护点/边,每次更新缩小范围,弹旧边压新边。

总的来说思想都懂,代码写不出来=_=

 

posted @ 2022-02-16 07:49  Ztemily  阅读(65)  评论(0)    收藏  举报