
多项式
gigo_64
莫看,莫看,这不是真实的我(七海脸)
溜了溜了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FFT
应某大巨神·红太阳斯基·FSYo之邀来写FFT的解释。用途FFT,快速傅里叶变换,处理两个多项式乘积。众所周知两个多项式相乘复杂度是的,参照高精度。而FFT可以降至nlogn。前置知识及概念一、多项式的表示方法平常常用的多项式是系数表示法。就是通过将x的幂次方分类,记录系数。形如而众所周知一个n次多项式可以被n个点唯一表示。所以还有一种是点值表示法。...原创 2019-12-27 20:23:27 · 454 阅读 · 1 评论 -
多项式求逆
我低头,你踮脚,刚刚好推导过程看楼上的博客就可以了。注意事项在对NTT进行IDFT的时候,本来wn应该要变成自己%len意义下的逆元。但根据zxy说的一位大佬的证明,和zxyoi的感性理解我们发现,只需要把原来的所有含x项翻转就可以了。记得在做limit的时候要做到deg*2,防止溢出。并且开c数组来替代a数组防止出现错误。一个跟博客几乎一样的代码#include<...原创 2019-10-18 11:27:33 · 186 阅读 · 0 评论 -
【ZJOI2014】力【FFT】
传送门咕咕咕做这道题主要是为了学习一个构造卷积的方法。当我们发现某个式子不构成卷积的时候,可以使用平移,翻转等各种操作来制造卷积。比如这道题将后半部分直接reverse得到一个对应n-i+1的卷积形式。然后顺带复习了一下FFT的打法,,差点搞忘了只记得NTT。#include<bits/stdc++.h>using namespace std;#define ...原创 2019-10-13 15:35:58 · 131 阅读 · 0 评论 -
【TJOI2019】唱跳rap篮球 【容斥】【多项式】
传送门(updateeee 忘了最后要减去了,,直接把错误答案的公式留在了这里2019.10.13)ldx说我容斥做少了,我觉得说的真tm对,来做做容斥。首先考虑正难则反。如果没有ctrl不好算,我们算有的。如果有i个ctrl,将这4个人缩成一个点,加上其他人有n-3i个点。从中随便找i个都可以作为ctrl。所以首先,i个ctrl的方案有但是注意,其它空位放的人也可能有ct...原创 2019-10-12 17:05:48 · 180 阅读 · 2 评论 -
分治NTT
以前是背板今天是理解。前置思想CDQ。当一个多项式前面对后面有贡献,递归分治处理。跟CDQ一样,先左边,然后左边更新右边,然后右边。考虑下面这个图l ----- mid----- rxxxxxxxxxxxxxxxxx系数数组xxxxxx xxxxxxx答案数组假设我们已经求得答案数组左边,用答案数组前mid-l+1和系数数组的前r-l+1项卷...原创 2019-10-11 18:48:33 · 1021 阅读 · 0 评论 -
多项式取模
又是一个毒瘤操作。首先我们可以干这么一件很有趣的事情。把一个多项式的所有系数reverse了。然后再把代进去,然后再乘上一个,又变回原来的多项式了。数学讲就是所以它转回去了。切入正题:给定n次多项式A,m次多项式B,求的一个D和R,使得,且R的最高次小于m。dzyo说可以证明DR唯一。所以我们可以这么干。两边同乘x^n所以...原创 2019-10-08 18:09:47 · 2213 阅读 · 0 评论 -
【hdu5909】Tree Cutting【FWT加速运算】【树形dp】
也许因为在人群中多看了你一眼,再也没能忘掉你容颜以前总把FFT啊FWT啊当成题目来做,现在要转变思维,把它们当做工具,在某些时候用来加速的工具。设f[i][j]表示i这个大子树内子树权值为j的子树个数。那么相当于自己和所有子节点进行异或操作,FWT加速即可。一开始真没想到,放一个yyb的代码上来,反正长得差不多。注意为了保证答案上传,每次要把常数项++,但计算答案的时候也不...原创 2019-08-11 16:42:37 · 120 阅读 · 0 评论 -
【洛谷4389】付公主的函数【生成函数】【多项式exp】
背包计数首先做生成函数答案是一大堆的乘积,直接做你已经死了经典套路先取对,加起来,然后exp。设所以积分回去调和级数加进去,exp#include<bits/stdc++.h>using namespace std;#define in read()#define int long longint in{ int cnt=0,f=1;char...原创 2019-08-10 11:03:03 · 239 阅读 · 0 评论 -
FWT快速沃尔什变换
处理位运算卷积。如果可以放链接我为什么不放链接呢反正这是一个转载博客yyb辣么强我们要一起发扬%他的伟大传统所以让我们喊出这真诚的口号:叶子最可爱啦...转载 2019-08-10 09:12:50 · 149 阅读 · 0 评论 -
多项式开根
求则那么先多项式ln,乘2的逆元,再exp即可。代码:#include<bits/stdc++.h>using namespace std;#define in read()#define int long longint in{ int cnt=0,f=1;char ch=0; while(!isdigit(ch)){ ch=getchar(...原创 2019-08-08 16:38:06 · 185 阅读 · 0 评论 -
多项式exp
关于多项式exp求则则设使用牛顿迭代来求G的0点。根据泰勒展开,,牛顿迭代就是只取i=0和1的两项,虽然不精确但可以逐渐缩小。而多项式倍增的时候,从平方开始在%x^n的意义下,都是同余的,所以对于多项式,牛顿迭代得到的是准确值。令b0为B的倍增下层的多项式。如果在0点展开,则在递归倍增的时候,所以因为所以所以递归,然后每次多项式ln,再卷起来。...原创 2019-08-08 16:33:30 · 437 阅读 · 0 评论 -
多项式求ln
求两边求导所以对于g’求导,乘g的逆元,然后得到f',再积分回去。关于求导:关于积分:关于代码#include<bits/stdc++.h>using namespace std;#define in read()#define int long longint in{ int cnt=0,f=1;char ch=0; while(!isdigit...原创 2019-08-06 17:26:07 · 234 阅读 · 0 评论