应该是经典题之一了。

\[[n|k]=\frac 1 n\sum_{i=0}^{n-1}w_n^{ik}
\]

有这个就可以算了。

\[\sum_{i=0}^n\binom n i x^ia_{i \mod 4}
\]

按照套路枚举余数

\[\sum_{i=0}^n\binom n ix^i \sum_{k=0}^3 a_k[4|i-k]
\]
\[\frac 1 4\sum_{i=0}^n\binom n ix^i \sum_{k=0}^3 a_k\sum_{j=0}^3w_4^{ij-jk}
\]
\[\frac 1 4\sum_{j=0}^3\sum_{k=0}^3w_4^{-jk}a_k\sum_{i=0}^n\binom n ix^iw_4^{ij}
\]

后面是二项式定理,套起来

\[\frac 1 4\sum_{j=0}^3\sum_{k=0}^3w_4^{-ik}a_k(1+xw_4^j)^n
\]

然后就可以 \(O(\log n)\) 了。

手生疏了,这么短点儿 15min 才推出来/kk

#include<iostream>
#include<cctype>
typedef unsigned ui;
const ui w[]={1,911660635,998244352,86583718},mod=998244353,MOD=mod-1;
ui n,x,a[4],f[4];char buf[1<<21|1],*p=buf;
inline char Getchar(){
return*p=='\0'&&std::cin.read(p=buf,1<<21),*p++;
}
inline ui read(){
ui n(0);char s;while(!isdigit(s=Getchar()));while(n=n*10+(s&15),isdigit(s=Getchar()));return n;
}
inline ui readll(){
ui n(0);char s;while(!isdigit(s=Getchar()));while(n=(n*10ull+(s&15))%MOD,isdigit(s=Getchar()));return n;
}
inline ui pow(ui a,ui b){
ui ans(1);
for(;b;b>>=1,a=1ull*a*a%mod)if(b&1)ans=1ull*ans*a%mod;
return ans;
}
signed main(){
ui i,j,T,ans;T=read();
while(T--){
n=readll();x=read();
for(i=0;i^4;++i)a[i]=read(),f[i]=pow(1ull*x*w[i]%mod+1,n)%mod;
ans=(a[0]*(1ull*f[0]+f[1]+f[2]+f[3])+(1ull*a[1]+a[2]+a[3])*f[0]+1ull*a[2]*f[2])%mod;
ans=(ans+(1ull*a[1]*f[3]+1ull*a[3]*f[1])%mod*911660635ull)%mod;
ans=(ans+mod-(1ull*a[2]*(f[1]+f[3])+1ull*(a[1]+a[3])*f[2])%mod)%mod;
ans=(ans+(1ull*a[1]*f[1]+1ull*a[3]*f[3])%mod*86583718ull)%mod;
printf("%u\n",748683265ull*ans%mod);
}
}

最新文章

  1. VS2015企业版,社区版,专业版详细对比
  2. 子坐标系C在父坐标系W中的旋转问题
  3. 命令行 更新Android sdk
  4. 【LeetCode】Flatten Binary Tree to Linked List
  5. QNX---- interrupts 例程
  6. 使用C#实现DHT磁力搜索的BT种子后端管理程序+数据库设计(开源)
  7. 入职15天,Angular2 小记!
  8. CentOS7 nginx安装
  9. 高性能网络 SR-IOV机制--VF与PF的通信
  10. 题目:python 打印出如下图案(菱形):
  11. 记录心得-shiro框架demo示例
  12. CentOS修改编码方式为zh_CN.UTF-8
  13. 《转》vue更新到2.0之后vue-resource不在更新,axios的使用
  14. 【SpringMVC学习07】SpringMVC中的统一异常处理
  15. 【原创】QT 打印输出
  16. JSR303 分組数据验证的使用
  17. DDOS攻击详解
  18. Python安装pycurl失败,及解决办法
  19. Shuffle&#39;m Up---poj3087
  20. discuz 修改积分策略( 在周期中添加&quot;每周&quot; )

热门文章

  1. ajax、axios、fetch区别及优缺点
  2. 关于LVS的问题总结
  3. Redis 源码简洁剖析 10 - aeEventLoop 及事件
  4. idea导入mavenJar、mavenWeb项目
  5. 拔掉网线后, 原本的 TCP 连接还存在吗?
  6. netty系列之:JVM中的Reference count原来netty中也有
  7. 帆软报表(finereport)使用Event 事件对象 (target)修改提示框样式
  8. 使用VMware安装win10虚拟机
  9. Solution -「CF 1586F」Defender of Childhood Dreams
  10. 如何强制关闭Win10自动更新