#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
typedef long long ll;
typedef pair<int,int> Pii;
const ll mod=;
const int maxn = 3e6+;
ll powmod(ll a,ll b) {ll res=;a%=mod; assert(b>=); for(;b;b>>=){if(b&)res=res*a%mod;a=a*a%mod;}return res;}
// head int a[maxn],b[maxn],c[maxn];
void FWT_or(int *a,int N,int opt)
{
for(int i=;i<N;i<<=)
for(int p=i<<,j=;j<N;j+=p)
for(int k=;k<i;++k)
if(opt==)a[i+j+k]=(a[j+k]+a[i+j+k])%mod;
else a[i+j+k]=(a[i+j+k]+mod-a[j+k])%mod;
}
void FWT_and(int *a,int N,int opt)
{
for(int i=;i<N;i<<=)
for(int p=i<<,j=;j<N;j+=p)
for(int k=;k<i;++k)
if(opt==)a[j+k]=(a[j+k]+a[i+j+k])%mod;
else a[j+k]=(a[j+k]+mod-a[i+j+k])%mod;
}
void FWT_xor(int *a,int N,int opt) //opt=1 正变换 opt=-1 逆变换
{
ll inv2=powmod(,mod-);
for(int i=;i<N;i<<=)
for(int p=i<<,j=;j<N;j+=p)
for(int k=;k<i;++k)
{
int X=a[j+k],Y=a[i+j+k];
a[j+k]=(X+Y)%mod;a[i+j+k]=(X+mod-Y)%mod;
if(opt==-)a[j+k]=1ll*a[j+k]*inv2%mod,a[i+j+k]=1ll*a[i+j+k]*inv2%mod;
}
}
int main()
{
int n;
scanf("%d",&n);n=<<n;
for(int i=;i<n;i++) scanf("%d",&a[i]);
for(int i=;i<n;i++) scanf("%d",&b[i]); FWT_or(a,n,);FWT_or(b,n,);
for(int i=;i<n;i++) c[i]=1ll*a[i]*b[i]%mod;
FWT_or(c,n,-);
for(int i=;i<n;i++) printf("%d ",c[i]); printf("\n"); FWT_or(a,n,-),FWT_or(b,n,-);
FWT_and(a,n,),FWT_and(b,n,);
for(int i=;i<n;i++) c[i]=1ll*a[i]*b[i]%mod;
FWT_and(c,n,-);
for(int i=;i<n;i++) printf("%d ",c[i]); printf("\n"); FWT_and(a,n,-),FWT_and(b,n,-);
FWT_xor(a,n,),FWT_xor(b,n,);
for(int i=;i<n;i++) c[i]=1ll*a[i]*b[i]%mod;
FWT_xor(c,n,-);
for(int i=;i<n;i++) printf("%d ",c[i]); printf("\n");
return ;
}

最新文章

  1. python学习之路 第一天
  2. mysql 快速简单安装法
  3. Debian8.3如何设置默认不启动Gnome
  4. 随笔:近期仍在流行的QQ盗号网页简析
  5. Spring Framework----定时任务的执行和调度
  6. js脚本语言基础和数组
  7. Oracle备份数据库
  8. Qt5.4 VS2010 Additional Dependancies
  9. Codevs
  10. BZOJ 1634: [Usaco2007 Jan]Protecting the Flowers 护花
  11. ASP.NET用SQL Server中的数据来生成JSON字符串
  12. 注册界面的优化之ActionBar组件的应用之(二)ActionBar组件的事件处理
  13. 延迟N秒执行某个方法
  14. Swift - 创建代理协议实现页面间参数传递和方法调用
  15. Unity2D实现贴图凹凸感并接受实时光照效果
  16. java io 流
  17. django用户认证系统——拓展 User 模型
  18. 请求超时VUE axios重新再次请求
  19. MYSQL HA 部署手册
  20. 搭建C++环境

热门文章

  1. JS 05 json
  2. 怎样使用wordpress模板建站
  3. WebSocket协议探究(序章)
  4. JS基础_构造函数
  5. Java Web-Filter and listener
  6. socket基本用法
  7. 完整的ELK+filebeat+kafka笔记
  8. 《深入Linux内核架构》笔记 --- 第一章 简介和概述
  9. hibernate使用注解生成表,有时无法生成数据表的原因
  10. k2系列-服务器管理篇