FWT模板
来源:互联网 发布:键盘钢琴软件 编辑:程序博客网 时间:2024/05/19 05:29
FWT
以异或为例:
给定两个数集
这个算式可以直接模拟,
假设可以将数集
于是突然发现了这样的一种变换
举个例子,
有点丧呀,做法都懂,概念还需研究
FWT模板,包含or和xor
#include <cstdio>#include <cstring>#define R registerconst int Mod = 998244353, p = 2341;int a[1 << 20], b[1 << 20], c[1 << 20];void FWTor(R int *A, R int l, R int r){ if(r - l <= 1) return ; R int mid = l + r >> 1; FWTor(A, l, mid), FWTor(A, mid, r); for(R int i = l, j = mid; j < r; i++, j++) (A[j] += A[i]) %= Mod;}void unFWTor(R int *A, R int l, R int r){ if(r - l <= 1) return ; R int mid = l + r >> 1; unFWTor(A, l, mid), unFWTor(A, mid, r); for(R int i = l, j = mid; j < r; i++, j++) (A[j] -= A[i] - Mod) %= Mod;}void FWTxor(R int *A, R int l, R int r){ if(r - l <= 1) return ; R int mid = l + r >> 1; FWTxor(A, l, mid), FWTxor(A, mid, r); for(R int i = l, j = mid; j < r; i++, j++) { R int f = A[i], g = A[j]; A[i] = (f + g) % Mod, A[j] = (f - g) % Mod; }}void unFWTxor(R int *A, R int l, R int r){ if(r - l <= 1) return ; R int mid = l + r >> 1; unFWTxor(A, l, mid), unFWTxor(A, mid, r); for(R int i = l, j = mid; j < r; i++, j++) { R int f = A[i], g = A[j]; A[i] = 1ll * (f + g) * 499122177 % Mod, A[j] = 1ll * (f - g) * 499122177 % Mod; }}int main(){ R int n; scanf("%d", &n); for(R int i = 0; i < (1 << n); i++) scanf("%d", &a[i]); for(R int i = 0; i < (1 << n); i++) scanf("%d", &b[i]); R int t; scanf("%d", &t); if(t == 1) { FWTor(a, 0, 1 << n); FWTor(b, 0, 1 << n); for(R int i = 0; i < (1 << n); i++) c[i] = 1ll * a[i] * b[i] % Mod; unFWTor(c, 0, 1 << n); } else { FWTxor(a, 0, 1 << n); FWTxor(b, 0, 1 << n); for(R int i = 0; i < (1 << n); i++) c[i] = 1ll * a[i] * b[i] % Mod; unFWTxor(c, 0, 1 << n); } for(R int i = 0; i < (1 << n); i++) printf("%d ", c[i]); puts(""); R int Ans = 0; for(R int i = 0; i < (1 << n); i++) Ans = (1ll * Ans * p + c[i]) % Mod; printf("%d", Ans); return 0;}
阅读全文
0 0
- FWT 模板
- FWT模板
- a difficult problem FWT 模板
- FWT
- FWT
- 文章标题 FWT (快速沃尔什变换) 模板
- CSU 1911 Card Game 快速沃尔什变换(FWT)模板题
- FWT总结
- FWT板子
- bzoj4589 FWT
- fwt模版
- FWT 笔记
- TC SRM518 NIM (FWT)
- 法法塔!【fft&fwt】
- PE 560 【博弈】【fwt】
- FWT 详解 知识点
- Fenwit FWT+数论
- FFT&&FWT&&NTT
- docker6 部署Nginx django mysql
- JavaScript原型和原型链新解
- java接入支付宝网站api
- Retrfit+rxjva2.0
- 单进程单线程,完成并发服务器(epoll版)
- FWT模板
- 设计模式--访问者模式
- 考研路茫茫——早起看书
- 数据库简单优化
- 【模板】快速幂
- Eclipse使用Maven搭建Spring Boot应用并访问数据库
- jsp在浏览器与服务器之间的交互原理
- Delphi类型区分——枚举
- Unity 全局雾效Shader:基于摄像机距离的雾效渲染