博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P4725 【模板】多项式对数函数(多项式运算)
阅读量:7008 次
发布时间:2019-06-28

本文共 2093 字,大约阅读时间需要 6 分钟。

 

前置芝士:微积分(有所了解即可)(可以看看,写得非常详细我看了两章就看不下去了)

以下都是一些简单的教程切莫当真,仅供理解,建议看更严谨的

导数:对于一个函数$f(x)$,它的导数$f'(x)$为一个新的函数。简单理解的话,$f'(x)$表示在原函数图像上该点切线的斜率,记为$\frac{dy}{dx}$或$\frac{d}{dx}f(x)$

积分:对于一个导数$f'(x)$,它所对应的原函数为它的积分,记为$\int f'(x)dx$

对于一个多项式$F(x)=\sum_{i=0}^na_ix^i$来说(一个多项式实际上可以看做一个函数),它的导数和积分如下

$$F'(x)=\sum_{i=1}^nia_ix^{i-1}$$
$$\int F(x)=\sum_{i=1}^n\frac{a_ix^{i+1}}{i+1}$$

这两个是可以$O(n)$计算的,可以互相转换

然后我们要计算$ln\ F$,首先因为$ln'(x)=\frac{1}{x}$,而这里是一个多项式,根据链式法则(我也不知道什么东西),$\frac{dy}{dx}=\frac{dy}{du}\frac{du}{dx}$,然后把$F(x)$带进去,得$$\frac{d}{dx}ln(F(x))=\frac{d}{dF(x)}ln(F(x))\frac{dF(x)}{dx}$$

$$\frac{d}{dx}ln(F(x))=\frac{1}{F}F'$$
$$ln(F(x))\equiv \int F'F^{-1}\pmod{x^n}$$
求导和积分的运算代码挺短的……然后剩下的基本就是多项式板子了

1 //minamoto 2 #include
3 #include
4 #include
5 #define swap(x,y) (x^=y,y^=x,x^=y) 6 #define mul(x,y) (1ll*x*y%P) 7 #define add(x,y) (x+y>=P?x+y-P:x+y) 8 #define dec(x,y) (x-y<0?x-y+P:x-y) 9 using namespace std;10 #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)11 char buf[1<<21],*p1=buf,*p2=buf;12 inline int read(){13 #define num ch-'0'14 char ch;bool flag=0;int res;15 while(!isdigit(ch=getc()))16 (ch=='-')&&(flag=true);17 for(res=num;isdigit(ch=getc());res=res*10+num);18 (flag)&&(res=-res);19 #undef num20 return res;21 }22 char sr[1<<21],z[20];int K=-1,Z;23 inline void Ot(){fwrite(sr,1,K+1,stdout),K=-1;}24 inline void print(int x){25 if(K>1<<20)Ot();if(x<0)sr[++K]=45,x=-x;26 while(z[++Z]=x%10+48,x/=10);27 while(sr[++K]=z[Z],--Z);sr[++K]=' ';28 }29 const int N=400005,P=998244353;30 inline int ksm(int a,int b){31 int res=1;32 while(b){33 if(b&1) res=mul(res,a);34 a=mul(a,a),b>>=1;35 }36 return res;37 }38 int n,r[N],A[N],B[N],C[N],D[N],F[N],G[N],O[N];39 void NTT(int *A,int type,int len){40 int limit=1,l=0;41 while(limit
>1]>>1)|((i&1)<<(l-1));44 for(int i=0;i
>1);int l=len<<1;65 for(int i=0;i

 

转载于:https://www.cnblogs.com/bztMinamoto/p/9747968.html

你可能感兴趣的文章
AVYAY交换机参考,CM常见命令中文解释
查看>>
angular ui-bootstrap datepicker第二次点击没有显示时间选择 解决方案
查看>>
zhuce
查看>>
Java 多线程
查看>>
InstallCert.java
查看>>
在Debian 7上配置Nginx + php-FPM + apc + MariaDB(翻译)
查看>>
解决Maven多模块项目,MavenWeb项目依赖的项目,修改无法立即生效问题
查看>>
XMPP协议实现原理介绍
查看>>
Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor...
查看>>
Java 一个特殊的类 ServiceLoader<S> 详解
查看>>
盒子模型中的div居中
查看>>
让你打开眼界的生活小创意!
查看>>
常用apt命令
查看>>
CSS实现3D旋转
查看>>
golang服务端, 游戏公测时遇到的socket写超时的问题, 也是游戏框架的设计问题
查看>>
oracle 定时器
查看>>
mysqld_multi 多实例启动mysql
查看>>
配置linux下的vimrc
查看>>
glusterfs Self-Heal and Re-Balance Operations
查看>>
Python文件夹与文件的操作
查看>>