分析

https://www.cnblogs.com/cjyyb/p/10822490.html

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int g = ;
const int N = 2e5;
const int G = ;
const int mod = ;
int f[],a[],b[],fac[],inv[],val,A[],R,r[];
inline int pw(int x,int p){int res=;while(p){if(p&)res=res*x%mod;x=x*x%mod;p>>=;}return res;}
inline void ntt(int a[],int opt,int n){
int i,j,k,inv=pw(n,mod-),now,wn,w,p,q;
for(i=;i<n;i++)if(i<r[i])swap(a[i],a[r[i]]);
for(i=;i<n;i<<=){
now=(opt==?g:G),wn=pw(now,(mod-)/(i<<));
for(j=;j<n;j+=(i<<))
for(k=,w=;k<i;k++,w=w*wn%mod)
p=a[j+k],q=a[i+j+k]*w%mod,a[j+k]=(p+q)%mod,a[i+j+k]=(p-q+mod)%mod;
}
if(opt==-)for(i=;i<n;i++)a[i]=a[i]*inv%mod;
}
inline void go_to_work(int le,int ri){
if(le==ri)return;
int i,j,k,n,m=ri-le,len=,mid=(le+ri)>>;
go_to_work(le,mid);for(n=;n<=(m+)*;n<<=)len++;
for(i=;i<n;i++)r[i]=((r[i>>]>>)|((i&)<<(len-)));
for(i=;i<n;i++)a[i]=b[i]=;for(i=;i<=mid-le;i++)a[i]=f[i+le];
for(i=;i<=m;i++)b[i]=val*inv[i]%mod;ntt(a,,n),ntt(b,,n);
for(i=;i<n;i++)a[i]=a[i]*b[i]%mod;ntt(a,-,n);
for(i=mid+;i<=ri;i++)f[i]=(f[i]+a[i-le])%mod;
go_to_work(mid+,ri);return; }
signed main(){
int n,i,j,k,Ans=;
scanf("%lld%lld",&n,&R);
f[]=pw((-R+mod)%mod,mod-);
for(i=;i<=n;i++)scanf("%lld",&A[i]);
fac[]=;for(i=;i<=N;i++)fac[i]=fac[i-]*i%mod;
inv[N]=pw(fac[N],mod-);for(i=N-;i>=;i--)inv[i]=inv[i+]*(i+)%mod;
val=R*pw((-R+mod)%mod,mod-)%mod;go_to_work(,n);
for(i=;i<=n;i++)Ans=(Ans+f[i]*A[i]%mod*fac[i]%mod)%mod;
printf("%lld\n",Ans);return ;
}

p5349 幂的更多相关文章

  1. [luogu P5349] 幂 解题报告 (分治FFT)

    interlinkage: https://www.luogu.org/problemnew/show/P5349 description: solution: 设$g(x)=\sum_{n=0}^{ ...

  2. Luogu P5349 幂

    大力数学题,发现自己好久没写多项式水平急速下降,求逆都要写挂233 首先看到关于多项式的等比数列求和,我们容易想到先求出每一项的系数然后最后累加起来即可,即设\(f_i=\sum_{n=0}^{\in ...

  3. 矩阵快速幂 HDU 4565 So Easy!(简单?才怪!)

    题目链接 题意: 思路: 直接拿别人的图,自己写太麻烦了~ 然后就可以用矩阵快速幂套模板求递推式啦~ 另外: 这题想不到或者不会矩阵快速幂,根本没法做,还是2013年长沙邀请赛水题,也是2008年Go ...

  4. POJ1026 Cipher(置换的幂运算)

    链接:http://poj.org/problem?id=1026 Cipher Time Limit: 1000MS   Memory Limit: 10000K Total Submissions ...

  5. C语言 · 2的次幂表示

    问题描述 任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001. 将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0 ...

  6. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串. 求长度为n的非010串的个数.(对1e9+7取模) ...

  7. hdu 4704 Sum (整数和分解+快速幂+费马小定理降幂)

    题意: 给n(1<n<),求(s1+s2+s3+...+sn)mod(1e9+7).其中si表示n由i个数相加而成的种数,如n=4,则s1=1,s2=3.                  ...

  8. 51nod1228 序列求和(自然数幂和)

    与UVA766 Sum of powers类似,见http://www.cnblogs.com/IMGavin/p/5948824.html 由于结果对MOD取模,使用逆元 #include<c ...

  9. UVA766 Sum of powers(1到n的自然数幂和 伯努利数)

    自然数幂和: (1) 伯努利数的递推式: B0 = 1 (要满足(1)式,求出Bn后将B1改为1 /2) 参考:https://en.wikipedia.org/wiki/Bernoulli_numb ...

随机推荐

  1. 【洛谷 P1879】【[USACO06NOV]玉米田Corn Fields】

    题目: 链接 思路: Q:如何想到是状压DP? A:那是因为(我看了标签)\(1 ≤ M ≤ 12; 1 ≤ N ≤ 12\),\(2 ^ {12}\) 不过才...(Win7计算器使用中)\(409 ...

  2. bootstrap中的横的列

    col-md-6都是可以嵌套的,所以12列都是虚拟的 所以bootstrap是怎么完成的?都是通过绝对的像素值吗?还是自动计算出了本区域的像素数,然后设置的? 看样子应该是后者,所以整个bootstr ...

  3. Cleaning Robot (bfs+dfs)

    Cleaning Robot (bfs+dfs) Here, we want to solve path planning for a mobile robot cleaning a rectangu ...

  4. 使用英特尔® 驱动程序和支持助理更新英特尔®固态盘数据中心工具(英特尔®固态盘 DCT)后仍旧提示更新

    再regedit中搜索原始版本,位于计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{82F015 ...

  5. 微信小程序css篇----flex模型

    一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{displ ...

  6. netdevice - 底层访问 Linux 网络设备

    总览 (SYNOPSIS) #include <sys/ioctl.h> #include <net/if.h> 描述 (DESCRIPTION) 本手册 描述 用于 配置 网 ...

  7. 判断是否是iframe框架打开登录页, iframe框架着顶部页面刷新

    if (window != top) top.location.href = location.href;

  8. PAT Basic 1048 数字加密 (20 分)

    本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...

  9. docker安装MySQL5.7示例!!坑

    docker  pull  mysql 一.错误的启动 [root@localhost  ~]#  docker  run  ‐‐name  mysql01  ‐d  mysql 42f0981990 ...

  10. TCP/IP基础总结性学习(5)

    与 HTTP 协作的 Web 服务器 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率. 一. 用单台虚拟主机实现多个域名 HTTP/1.1 规范允许 ...