快速沃尔什变换

题目背景

模板题,无背景

题目描述

给定长度为(2^n)两个序列(A,B),设(C_i=sum_{joplus k=i}A_jB_k) 分别当(oplus)是or,and,xor时求出(C)

输入输出格式

输入格式:

第一行一个数(n)。 第二行(2^n)个数(A_0..A_{2^n-1}) 第三行(2^n)个数(B_0..B_{2^n-1})

输出格式:

三行每行(2^n)个数,分别代表(oplus)是or,and,xor时(C_0..C_{2^n-1})的值(mod 998244353)

说明

(nle 17)。

证明没怎么看懂,放结论了。

or

[FWT(A)=(FWT(A_0),FWT(A_0+A_1))]

[IFWT(A)=(IFWT(A_0),IFWT(A_1-A_0))]

and

[FWT(A)=(FWT(A_0+A_1),FWT(A_1))]

[IFWT(A)=(IFWT(A_0-A_1),IFWT(A_1))]

xor

[FWT(A)=(FWT(A_0+A_1),FWT(A_0-A_1))]

[IFWT(A)=(IFWT(A_0+A_1)/2,IFWT(A_1-A_0)/2)]

背下来吧,像(FFT)那样写就好了

Code:

#include

const int N=(1<<17)+10;

const int mod=998244353,inv=499122177;

int A[N],B[N],a[N],b[N],n,len;

#define add(a,b) ((a+b)%mod)

#define mul(a,b) (1ll*(a)*(b)%mod)

void orfwt(int *a,int typ)

{

for(int le=1;le

for(int p=0;p

for(int i=p+le;i

if(typ) a[i]=add(a[i],a[i-le]);

else a[i]=add(a[i],mod-a[i-le]);

}

void andfwt(int *a,int typ)

{

for(int le=1;le

for(int p=0;p

for(int i=p;i

if(typ) a[i]=add(a[i],a[i+le]);

else a[i]=add(a[i],mod-a[i+le]);

}

void xorfwt(int *a,int typ)

{

for(int le=1;le

for(int p=0;p

for(int i=p;i

{

int tx=a[i],ty=a[i+le];

a[i]=add(tx,ty),a[i+le]=add(tx,mod-ty);

if(!typ) a[i]=mul(a[i],inv),a[i+le]=mul(a[i+le],inv);

}

}

int main()

{

scanf("%d",&n);len=1<

for(int i=0;i

for(int i=0;i

for(int i=0;i

orfwt(a,1),orfwt(b,1);

for(int i=0;i

orfwt(a,0);

for(int i=0;i

puts("");

for(int i=0;i

andfwt(a,1),andfwt(b,1);

for(int i=0;i

andfwt(a,0);

for(int i=0;i

puts("");

for(int i=0;i

xorfwt(a,1),xorfwt(b,1);

for(int i=0;i

xorfwt(a,0);

for(int i=0;i

puts("");

return 0;

}

2018.12.18

python实现离散沃尔什变换_快速沃尔什变换(示例代码)相关推荐

  1. python实现商品管理系统_商品管理系统(示例代码)

    需求: 3.写一个商品管理的程序 功能1:添加商品 功能2:删除商品信息 功能3:修改商品信息 功能4:查看商品,输入all,查看所有商品,输入单个商品名称查看单个商品信息 商品格式存在文件中,goo ...

  2. python广告刷量_用python实现刷点击率的示例代码

    背景 同事的老爸参加微信的一个活动,需要刷点击率,因此,写了一个程序助之. 准备 微信活动也是有真实地址的. 通过mitmproxy(man in the middle proxy)的方式,可以获取微 ...

  3. 用python做一个购物车编程_利用python实现简单的循环购物车功能示例代码

    本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = ...

  4. python中实现延时回调普通函数示例代码

    这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 回调函 ...

  5. 毕业生简单的用Python实现一个信息管理系统【含示例代码】

    写在前面: 从昨晚的梦里回忆起数据管理的作业: 实现一个自己的选题---- 毕业生信息管理系统,实现学生个人信息基本的增删改查, 我想了想前段时间刚学习的列表,这个简单啊 ,设计一个学生信息列表,然后 ...

  6. 《Think Python》练习 4-1:本章示例代码栈图、停止点偏离思考

    第4章 案例研究:接口设计 练习 4-1 本章示例代码栈图.停止点偏离思考 [习题 4.1.1] 画一个栈图来显示函数 circle(bob, radius) 运行时的程序状态. <Think ...

  7. python修改html内容_详解Python利用Beautiful Soup模块修改内容示例代码

    Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python 库.它能够通过你喜欢的转换器实现惯用的文档导航.查找.修改文档的方式.他还能够修改HTML/XML文档的内容.这篇 ...

  8. python定义多项式除法_快速多项式除法的fft除法

    下面是一个快速多项式除法算法的直接实现,在这些lecture notes中找到.在 除法是基于除数的倒数与被除数的快速/FFT相乘.我下面的实现严格遵循了被证明具有O(n*log(n))时间复杂度的算 ...

  9. python空间点赞_用Python登录好友QQ空间点赞的示例代码

    记得之前跟我女票说过,说要帮她空间点赞,点到999就不点了.刚开始还能天天记得,但是后来事情一多,就难免会忘记,前两天点赞的时候忽然觉得这样好枯燥啊,正好也在学Python,就在想能不能有什么方法能自 ...

  10. python 给qq点赞_用Python登录好友QQ空间点赞的示例代码

    记得之前跟我女票说过,说要帮她空间点赞,点到999就不点了.刚开始还能天天记得,但是后来事情一多,就难免会忘记,前两天点赞的时候忽然觉得这样好枯燥啊,正好也在学Python,就在想能不能有什么方法能自 ...

最新文章

  1. jQuery快速学习
  2. 小议传统分层与新式分层,抑或与DDD分层
  3. 【C】strcpy()需谨慎使用;
  4. FreeMarker三宗罪!
  5. mysql数据库d导出数据_mysql数据库导入导出文件
  6. 2020年Tor Project的加密货币捐款增加23%达23万美元
  7. GitHub上最火的40个Android开源项目(一)
  8. python如何截长图_Python网页截图/屏幕截图/截长图如何实现?
  9. 几款软件需求分析工具
  10. 综合布线系统计算机网络,综合布线 计算机网络系统
  11. SpringBoot-Learning-作者:翟永超
  12. Comparator.comparing排序的坑
  13. 工业机器人视觉功能详解
  14. IllegalStateException: Content has been consumed
  15. Android Studio中实战演练——绿豆通讯录
  16. 有特别有创意的网站设计案例
  17. 使用xmake配合arm-none-eabi-gcc构建stm32工程
  18. 中国历史上哪个朝代不能缺?
  19. ArcBlock 分享 | 融合云计算,才是区块链的未来
  20. 信息系统项目管理师(2022年)—— 重点内容:信息系统项目管理基础(2)

热门文章

  1. delphi math 单元函数
  2. Android 启动优化说明、黑白屏处理
  3. 【转自心声】华为眼中管理者的18种惰怠行为
  4. 关于 傅里叶变换 的一些理解(通俗版)
  5. tomcat乱码_中文乱码
  6. php生成appid,请求认证密钥-AppID
  7. Beer Bill(签到题)
  8. img下方出现空隙的原因及解决办法
  9. 解决 c++ 字符转转浮点型数据且保留所有小数
  10. acwing每日一题之贝茜放慢脚步