模pow(x,t)下多项式求逆

原创 2015年07月08日 19:17:32

题意:A(x) is known, A(x)*B(x)=1( mod pow(x,t) ),calculate B(x) ?
解法:先求t=[t/2]时的解为B0(x),然后经过数学处理可得到B(x)和B0(x)的关系。
详见博客http://picks.logdown.com/posts/189620-inverse-element-of-polynomial

const int mo = 1e9+7;
const int maxn = 100000+10;
int qpow(int a,int b,int mo){
    int ans=1;
    while(b){
        if(b&1) { ans=(ans*a)%mo; b--; }
        b>>=1,a=(a*a)%mo;
    }
    return ans;
}

//A(x) is known, A(x)*B(x)=1( mod pow(x,t) ),calculate B(x) ?
int tmp[maxn];
void getinv(int A[],int B[],int t){
    if(t==1){ B[0]=qpow(B[0],mo-2,mo); return; }
    getinv(A,B,(t+1)>>1);
    int k=1; for(;k<=(t+1)<<1;k<<=1);  int inv_k=qpow(k,mo-2,mo);
    for(int i=0;i<t;i++) tmp[i]=A[i]; for(int i=t;i<k;i++) tmp[i]=0;
    fft(tmp,k,0),fft(B,k,0);
    for(int i=0;i<k;i++) { tmp[i]=(2-(ll)tmp[i]*B[i]%mo+mo)%mo; }
    for(int i=0;i<k;i++) { B[i]=(ll)B[i]*tmp[i]%mo; }
    fft(B,k,1);
    for(int i=0;i<t;i++) { B[i]=(ll)B[i]*inv_k%mo; } for(int i=t;i<k;i++) B[i]=0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013514182/article/details/46807449

T型总裁决策+大数据

大数据时代,T型总裁如何发挥大数据的威力,大幅优化决策的质量,降低决策风险? 君不见,股市投资之神 巴菲特在进行投资评估时,基于详尽的数据分析,删除高风险的方案,实践他〈不打没把握的仗〉的原则,大幅降低长期投资风险。这是以大数据来检验长期决策的模式,有效补捉未来机会,降低风险。
  • 2015年12月15日 08:16

预处理伯努利数(多项式求逆)

伯努利数定义:  递推式: 将e^t展开得到: 然后就可以利用多项式逆元求出伯努利数了。。 多项式逆元就是给定一个n次多项式A(x),求另一个多项式B(x),满足 其中mod x^n表示多项式除...
  • u013654696
  • u013654696
  • 2015-09-22 23:02:23
  • 1202

[Notes][多项式]杂记 · 多项式算法—多项式求逆 多项式取模 多项式开根…

多项式 由若干个单项式相加组成的代数式叫做多项式 形如:f(x)=∑ni=0aixif(x)=∑i=0naixif(x)=\sum_{i=0}^{n}a_ix^i, deg&amp;nbsp;f...
  • Coldef
  • Coldef
  • 2017-07-24 14:48:17
  • 1301

多项式求逆——学习笔记

基本概念 多项式的度:对于一个多项式 A(x)A(x)A(x) ,称其最高项次数为多项式的度,记作 degAdegAdeg A 多项式的逆元:对于 A(x)A(x)A(x) 若存在 B(x)B(...
  • CHHNZ
  • CHHNZ
  • 2018-02-08 18:56:03
  • 82

扩展欧几里得算法 有限域上多项式求逆

今年网络安全的一个小作业,简单用C++实现了下 有些粗糙 先放这儿吧 ^_^算法描述 考完试再附上ExEuclid简单实现/* * 文件名称:myecu.cpp * 摘 要:Extend Eucl...
  • Yibaini
  • Yibaini
  • 2010-07-06 16:03:00
  • 2920

求逆元的方法汇总

传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3223题目大意[1,n],每次翻转[L,R],输出最后的序列题解Splay模板题 翻转标记下放...
  • slongle_amazing
  • slongle_amazing
  • 2016-02-15 16:17:47
  • 5015

[多项式求逆 模板题] BZOJ 4555 [Tjoi2016&Heoi2016]求和

推导不多说了 在很久之前就写过了 观察柿子gn=∑i=1n2∗Cin∗gn−ig_n=\sum _{i=1}^n 2*C_n^i*g_{n-i} 写成卷积的形式 gnn!=∑i=1n2i!∗g...
  • u014609452
  • u014609452
  • 2017-02-21 18:19:42
  • 870

多项式求逆 与 多项式开方

介绍与基本概念多项式求逆元是多项式除法、多项式开根和多项式取模的必要过程,用快速傅里叶变换及倍增算法可以做到用OO(nn loglog nn)的时间复杂度求出一个多项式的逆元。对于一个多项式 A(x)...
  • XianHaoMing
  • XianHaoMing
  • 2017-12-09 22:15:02
  • 197

三种求乘法逆元方法详解

P3811 【模板】乘法逆元 题目背景 这是一道模板题 题目描述 给定n,p求1~n中所有整数在模p意义下的乘法逆元。 输入输出格式 输入格式:   一行n,p   输出格式:...
  • WhiStLenA
  • WhiStLenA
  • 2017-10-15 14:00:44
  • 501

bzoj 4555:[Tjoi2016&Heoi2016]求和 多项式求逆

如果没有2^j和j!,那么题目就是求Σ(i=0,n)Bi(Bi表示第i个贝尔数),而Bi=Σ(j=0,i)S(i,j)。        考虑第二类斯特林数的含义为将i个不同的数分成j个集合的方案数,...
  • lych_cys
  • lych_cys
  • 2016-05-27 07:58:54
  • 2301
收藏助手
不良信息举报
您举报文章:模pow(x,t)下多项式求逆
举报原因:
原因补充:

(最多只允许输入30个字)