python实现离散沃尔什变换_快速沃尔什变换(示例代码)
快速沃尔什变换
题目背景
模板题,无背景
题目描述
给定长度为(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实现离散沃尔什变换_快速沃尔什变换(示例代码)相关推荐
- python实现商品管理系统_商品管理系统(示例代码)
需求: 3.写一个商品管理的程序 功能1:添加商品 功能2:删除商品信息 功能3:修改商品信息 功能4:查看商品,输入all,查看所有商品,输入单个商品名称查看单个商品信息 商品格式存在文件中,goo ...
- python广告刷量_用python实现刷点击率的示例代码
背景 同事的老爸参加微信的一个活动,需要刷点击率,因此,写了一个程序助之. 准备 微信活动也是有真实地址的. 通过mitmproxy(man in the middle proxy)的方式,可以获取微 ...
- 用python做一个购物车编程_利用python实现简单的循环购物车功能示例代码
本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = ...
- python中实现延时回调普通函数示例代码
这篇文章主要给大家介绍了关于python中实现延时回调普通函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 回调函 ...
- 毕业生简单的用Python实现一个信息管理系统【含示例代码】
写在前面: 从昨晚的梦里回忆起数据管理的作业: 实现一个自己的选题---- 毕业生信息管理系统,实现学生个人信息基本的增删改查, 我想了想前段时间刚学习的列表,这个简单啊 ,设计一个学生信息列表,然后 ...
- 《Think Python》练习 4-1:本章示例代码栈图、停止点偏离思考
第4章 案例研究:接口设计 练习 4-1 本章示例代码栈图.停止点偏离思考 [习题 4.1.1] 画一个栈图来显示函数 circle(bob, radius) 运行时的程序状态. <Think ...
- python修改html内容_详解Python利用Beautiful Soup模块修改内容示例代码
Beautiful Soup是一个可以从HTML或XML文件中提取数据的Python 库.它能够通过你喜欢的转换器实现惯用的文档导航.查找.修改文档的方式.他还能够修改HTML/XML文档的内容.这篇 ...
- python定义多项式除法_快速多项式除法的fft除法
下面是一个快速多项式除法算法的直接实现,在这些lecture notes中找到.在 除法是基于除数的倒数与被除数的快速/FFT相乘.我下面的实现严格遵循了被证明具有O(n*log(n))时间复杂度的算 ...
- python空间点赞_用Python登录好友QQ空间点赞的示例代码
记得之前跟我女票说过,说要帮她空间点赞,点到999就不点了.刚开始还能天天记得,但是后来事情一多,就难免会忘记,前两天点赞的时候忽然觉得这样好枯燥啊,正好也在学Python,就在想能不能有什么方法能自 ...
- python 给qq点赞_用Python登录好友QQ空间点赞的示例代码
记得之前跟我女票说过,说要帮她空间点赞,点到999就不点了.刚开始还能天天记得,但是后来事情一多,就难免会忘记,前两天点赞的时候忽然觉得这样好枯燥啊,正好也在学Python,就在想能不能有什么方法能自 ...
最新文章
- jQuery快速学习
- 小议传统分层与新式分层,抑或与DDD分层
- 【C】strcpy()需谨慎使用;
- FreeMarker三宗罪!
- mysql数据库d导出数据_mysql数据库导入导出文件
- 2020年Tor Project的加密货币捐款增加23%达23万美元
- GitHub上最火的40个Android开源项目(一)
- python如何截长图_Python网页截图/屏幕截图/截长图如何实现?
- 几款软件需求分析工具
- 综合布线系统计算机网络,综合布线 计算机网络系统
- SpringBoot-Learning-作者:翟永超
- Comparator.comparing排序的坑
- 工业机器人视觉功能详解
- IllegalStateException: Content has been consumed
- Android Studio中实战演练——绿豆通讯录
- 有特别有创意的网站设计案例
- 使用xmake配合arm-none-eabi-gcc构建stm32工程
- 中国历史上哪个朝代不能缺?
- ArcBlock 分享 | 融合云计算,才是区块链的未来
- 信息系统项目管理师(2022年)—— 重点内容:信息系统项目管理基础(2)