最骚的是我考场上做完之后睡了一觉,起来之后半天想不通自己在做什么

题解(重点只有一个)

显然的卷积

中的每一个元素 到数组

于是当前 ,十分显然的卷积-> NTT

然后处理

我们有

但同时我们也有

也就是说,卷积满足结合律、

然后我们就能对 进行快速幂!!

于是乎,这个问题就成了

附上代码

#include <cmath>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=33000;
const int mod=(453<<21)+1,G=7,inv_G=135715694;int n,m,k,N,inv_N,rev[maxn];int KSM(int a,int b)
{int res=1;for (;b;b>>=1,a=1ll*a*a%mod)if (b&1) res=1ll*res*a%mod;return res;
}int rever(int x)
{int len=N,res=0;while (len--) res<<=1,res^=(x&1),x>>=1;return res;
}struct DFT
{int a[maxn];void ntt(int op){for (int i=0;i<N;i++) if (rev[i]>i) swap(a[rev[i]],a[i]);int g=op==1?G:inv_G;for (int sz=2;sz<=N;sz<<=1){int t=KSM(g,(mod-1)/sz);for (int bg=0;bg<N;bg+=sz){for (int po=bg,w=1;po<bg+(sz>>1);po++){int x=a[po],y=1LL*a[po+(sz>>1)]*w%mod;a[po]=(x+y)%mod,a[po+(sz>>1)]=(x-y+mod)%mod;w=1ll*w*t%mod;}}}if (op==-1) for (int i=0;i<N;++i) a[i]=1LL*a[i]*inv_N%mod;}
}a,f;void KSM(DFT f,DFT a)
{for (;k;k>>=1){a.ntt(1);if (k&1){f.ntt(1); for (int i=0;i<N;i++) f.a[i]=1ll*f.a[i]*a.a[i]%mod;f.ntt(-1); for (int i=n;i<N;i++) f.a[i]=0;}for (int i=0;i<N;i++) a.a[i]=1ll*a.a[i]*a.a[i]%mod;a.ntt(-1);for (int i=n;i<N;i++) a.a[i]=0;}for (int i=0;i<n;i++) printf("%d ",f.a[i]);puts("");
}int main()
{freopen("A.in","r",stdin);freopen("A.out","w",stdout);scanf("%d%d%d",&n,&m,&k);for (int i=0;i<n;i++) scanf("%d",&f.a[i]),f.a[i]%=mod;for (int i=1,x;i<=m;i++) scanf("%d",&x),a.a[x]++;N=(int)ceil(log2(n))+1;for (int i=0;i<(1<<N);i++) rev[i]=rever(i);//for (int i=0;i<(1<<N);i++) printf("%d %d\n",i,rev[i]);N=1<<N,inv_N=KSM(N,mod-2),KSM(f,a);return 0;
}
复制代码

转载于:https://juejin.im/post/5a9cfddb518825556140bd3a

BZOJ 4178 A相关推荐

  1. BZOJ.1558.[JSOI2009]等差数列(线段树 差分)

    BZOJ 洛谷 首先可以把原序列\(A_i\)转化成差分序列\(B_i\)去做. 这样对于区间加一个等差数列\((l,r,a_0,d)\),就可以转化为\(B_{l-1}\)+=\(a_0\),\(B ...

  2. S-T平面图中利用最短路求最小割(BZOJ 1001)

    BZOJ 1001: [BeiJing2006]狼抓兔子 最小割 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1001 现在小朋友们最喜欢 ...

  3. BZOJ 1124: [POI2008]枪战Maf(构造 + 贪心)

    题意 有 \(n\) 个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪. 因此,对于不同的开枪顺序,最后死的人也不同. 问最 ...

  4. BZOJ 2957楼房重建

    传送门 线段树 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include< ...

  5. BZOJ.5249.[九省联考2018]iiidx(贪心 线段树)

    BZOJ LOJ 洛谷 \(d_i\)不同就不用说了,建出树来\(DFS\)一遍. 对于\(d_i\)不同的情况: Solution 1: xxy tql! 考虑如何把这些数依次填到树里. 首先对于已 ...

  6. bzoj 4871: [Shoi2017]摧毁“树状图”

    4871: [Shoi2017]摧毁"树状图" Time Limit: 25 Sec  Memory Limit: 512 MB Submit: 53  Solved: 9 [Su ...

  7. BZOJ 1592. Making the Grade(思维,数据结构优化DP,以及三个拓展问题)[Usaco2008 Feb]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x 目录 BZOJ 1592. Making the Grade 拓展问题一 拓展问 ...

  8. BZOJ 1590.Secret Message 秘密信息(Trie树) [Usaco2008 Dec]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ简单题合集x Weblink https://hydro.ac/d/bzoj/p/1590 P ...

  9. BZOJ 1589 Trick or Treat on the Farm (tarjan缩点,记忆化搜索)[Usaco 2008 Dec Gold]【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://hydro.ac/d/bzoj/p/1589 Problem 每年万圣 ...

  10. BZOJ 2159 「国家集训队」Crash 的文明世界(第二类斯特林数,换根DP)【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2159 是 hydro 的 BZOJ ...

最新文章

  1. C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数或返回值的使用注意事项...
  2. SRE工程师到底是做什么的?
  3. python长连接框架_python之websocket【长连接的实现】
  4. mysql重做日志与binlog日志区别_MySQL日志之binlog、redo log、undo log
  5. java 不显示控制台_命令行启动java程序不显示控制台窗口
  6. java离职证明模板_如何写出月薪过万的Java开发简历-附加模板
  7. 信息学奥赛一本通 1012:计算多项式的值 | OpenJudge NOI 1.3 07
  8. 旧电脑从win7更换成Ubuntu系统(U盘安装)
  9. 计算机2级vb查询,计算机2级VB
  10. 中标麒麟linux系统安装打印机_安装国产Linux中标麒麟操作系统教程
  11. java打印日历至Excel_如何利用Excel打印漂亮的工作日历
  12. 免费空间(免备案,无广告) 1G免费全能空间
  13. 史玉柱自述:我是怎么带队伍的
  14. FOC控制中电流环带宽
  15. javascript中change事件的用法
  16. QT 添加 lib库
  17. SpringBoot2.0源码解析一
  18. 要想成为JAVA高手必须先刻苦
  19. 皮格马利翁效应的启示
  20. O2O分享6:O2O的社会化营销(下)

热门文章

  1. 程序状态字寄存器PSW
  2. 【版本控制】Github for Windows客户端的使用
  3. 基于Colaboratory平台使用VGGNet网络进行图片分类
  4. tensorflow.python.framework.errors_impl.NotFoundError: Could not find valid device for node.
  5. android 权限问题吗,Android 6.0前后权限问题
  6. 实习成长之路:操作系统——CPU有哪些工作模式呢?
  7. CXF +ws-security 和HttpURLConnection实现webservic请求
  8. FFmpeg实现多段小视频合成
  9. 你的核心竞争力真的是技术么?
  10. 微信小程序公测了!教你第一时间注册微信小程序