模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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Pow(x, n) 求一个数的n次方

我们知道C++中是有pow函数的,我们这次自己来写个,因为有这样的算法题目。 所需数学知识: 大致考虑正数,0,负数即可。n多个数相乘的问题。 1.简单For循环 这还不简单,马上写一个f...

[概率DP][多项式取模] NOI2017.day1 T3 泳池

lzz写了题解,但是我没看懂… 就自己想了个DP f(i,j)表示高度为i,长度为j的局域,i这个行存在障碍,前i-1行不存在障碍,能选取的区域...
  • Coldef
  • Coldef
  • 2017年07月24日 15:03
  • 658

FFT多项式快速幂,对于x^num取模,顺便再模一个998244353

多项式快速幂 时间限制 : 60000 MS 空间限制 : 524288 KB问题描述:给一个n次多项式,求它的k次方。没关系,随手模一个998244353就行了。没关系,再随手模一个xm就行了...

LeetCode 第 50 题 (Pow(x, n))

LeetCode 第 50 题 (Pow(x, n)) Implement pow(x, n). 这个题目非常简短,求 xnx^n。其中nn 为整数。 最简单的想法就是用一个循环,将 xx 自乘...

实现pow(double x, int n)

整理来源: http://bbs.csdn.net/topics/390511135 (由于0^0有争议,在这儿取0^0=0) // 依次乘以n次x的值得到最终结果 double Power1(do...

【LeetCode】50. Pow(x, n)

【LeetCode】50. Pow(x, n)

LeetCode 050 Pow(x,n)

记录自己的LeetCode刷题过程,总结刷题过程中的心得体会。 加深对类型转换的理解。 首先, int a=INT_MIN; 则 int b =-a; //b仍然为INT_MI...

DAY21:leetcode #50 Pow(x, n)

Implement pow(x, n). Subscribe to see which companies asked this question class Solution(object):...

Pow(x, n) -- LeetCode

原题链接: http://oj.leetcode.com/problems/powx-n/  这道题是一道数值计算的题目,因为指数是可以使结果变大的运算,所以要注意越界的问题。如同我在Sqrt(x)这...

Pow(x, n)

题目描述: Implement pow(x, n). 在进行该题目之前要先了解斐波那契数列的递归解法。 public class exercise { public static int Fi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模pow(x,t)下多项式求逆
举报原因:
原因补充:

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