NTT FWT(xor or and) 模板】的更多相关文章

void nnt(int a[],int len,int on) { ;i<len;i++) if(i<r[i]) swap(a[i],a[r[i]]); ;i<len;i<<=) { ,(mod-)/(i<<)); ;j<len;j+=(i<<)) { ; ;k<i;k++,w=1ll*w*wn%mod) { int u=a[j+k], v=1ll*w*a[j+k+i]%mod; a[j+k]=(u+v)%mod, a[j+k+i]=(u…
目录 信号, 集合, 多项式, 以及卷积性变换 卷积 卷积性变换 傅里叶变换与信号 引入: 信号分析 变换的基础: 复数 傅里叶变换 离散傅里叶变换 FFT 与多项式 \(n\) 次单位复根 消去引理, 折半引理与求和引理 重新定义 多项式的表示 快速傅里叶变换FFT 通过 FFT 在单位复数根处插值 FFT的速度优化与迭代实现 炸精现场与 NTT 原根 NTT 任意模数 NTT 卷积状物体与分治 FFT FWT 与位运算卷积 FWT 与 \(\text{or}\) 卷积 FWT 与 \(\te…
打算写一个多项式总结. 虽然自己菜得太真实了. 好像四级标题太小了,下次写博客的时候再考虑一下. 模板 \(FFT\)模板 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <cctype> #include <algorithm> #define rin(i,a,b)…
4589: Hard Nim Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 865  Solved: 484[Submit][Status][Discuss] Description   Claris和NanoApe在玩石子游戏,他们有n堆石子,规则如下: 1. Claris和NanoApe两个人轮流拿石子,Claris先拿. 2. 每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜. 不同的初始局面,决定了最终的获胜…
1. 2. 点值表示法 假设两个多项式相乘后得到的多项式 的次数(最高次项的幂数)为 $n$.(这个很好求,两个多项式的最高次项的幂数相加就得到了) 对于每个点,要用 $O(n)$ 的时间 把 $x$ 分别代入两个多项式,得到两个结果 $z_1,z_2$,两者相乘得到 $z$,才能知道相乘后的多项式在代入一个 $x$ 时会得到 $z$,也就是固定了一个点 $(x,z)$. 至少需要 $n$ 个点(也就是枚举 $n$ 个 $x$)才能确定一个 $n$ 次多项式(拉格朗日插值),总时间复杂度 $O(…
H XOR 题意 给出一组数,求所有满足异或和为0的子集的长度和 分析 n为1e5,所以枚举子集肯定是不可行的,这种时候我们通常要转化成求每一个数的贡献,对于一组数异或和为0.我们考虑使用线性基,对这一组数求线性基,设基的长度为r,由线性代数的知识我们可以知道,在这个数组中取一个数,这个线性基有唯一一种组成方式使得异或这个数为0.所以对于不在线性基的每一个数,他可以组成的子集个数为\(2^{n-r-1}\),所以所有不构成线性基的数的贡献为\((n-r)*2^{n-r-1}\),那么对于在线性基…
点此看题面 大致题意: 有两个长度为\(2^n\)的数组\(A,B\),且\(C_i=\sum_{j⊕k==i}A_jB_k\)分别求出当\(⊕\)为\(or,and,xor\)时的\(C\)数组. \(FWT\) 这是一道\(FWT\)的板子题. 由于\(FWT\)太难了,所以我只会背板子(甚至连板子都不会背). 可见代码. 代码 #include<bits/stdc++.h> #define Tp template<typename Ty> #define Ts templat…
目录 计算几何✔ DP 斜率优化✔ 四边形不等式✔ 轮廓线DP✘ 各种分治 CDQ分治✔ 点分治✔ 整体二分✔ 数据结构 线段树合并✔ 分块✔ K-D Tree LCT 可持久化Trie✔ Splay fhq Treap 虚树 可并堆 左偏树* 数学,数论 CRT 扩展CRT Lucas 扩展Lucas 杜教筛✔ Min25筛 莫比乌斯反演✔ FFT,NTT FWT BSGS Miller Rabin* Pollard Rho* Catalan数 Stirling数 高斯消元 拉格朗日插值✔ 单…
[uoj#310][UNR #2]黎明前的巧克力 FWT - GXZlegend - 博客园 f[i][xor],考虑优化暴力,暴力就是FWT xor一个多项式 整体处理 (以下FWT代表第一步) FWT之后,一定只有-1,3 而FWT的和等于和的FWT 所以做和,然后FWT一下 列方程就可以得到每一位的-1和3的个数了 而对于一些多项式,分别FWT.IFWT和FWT后乘起来再IFWT是一样的 我们已经快速幂得到n个多项式FWT的乘积了 再做一次IFWT即可 还是想到FWT集体处理,必然要注意顺…
最近重新学了下卷积,简单总结一下,不涉及细节内容: 1.FFT 朴素求法:$Coefficient-O(n^2)-CoefficientResult$ FFT:$Coefficient-O(nlogn)-Dot-O(n)-DotResult-O(nlogn)-CoefficientResult$ 其中系数到点值的转化称为$DFT(离散傅里叶变换)$,而点值到系数的转为称为$IDFT(傅里叶逆变换)$ 原本朴素的直接带入$n$个值的$DFT$和直接使用拉格朗日插值公式的$IDFT$的复杂度仍为$O…