当前位置: 首页 > news >正文

杭州微信网站建设app下载网站建设

杭州微信网站建设,app下载网站建设,新手如何做网上销售,怎样制作网站后台文章目录前言解析OR定义变换#xff1a;逆变换代码AND代码XOR定义变换逆变换代码所谓快速沃尔什变换#xff0c;就是快速的沃尔玛什锦专柜变换 #xff08;逃#xff09; 前言 正常卷积的定义#xff1a;ck∑ijkaibjc_k\sum_{ijk}a_ib_jck​∑ijk​ai​bj​。 可以用FFT… 文章目录前言解析OR定义变换逆变换代码AND代码XOR定义变换逆变换代码所谓快速沃尔什变换就是快速的沃尔玛什锦专柜变换 逃 前言 正常卷积的定义ck∑ijkaibjc_k\sum_{ijk}a_ib_jck​∑ijk​ai​bj​。 可以用FFT或者NTT在 O(nlog⁡n)O(n\log n)O(nlogn) 的复杂度内解决。 然而有些时候我们计算卷积的时候下标关系并不是喜闻乐见的加法而是形如 ck∑i⊕jkaibjc_k\sum_{i\oplus jk}a_ib_jck​∑i⊕jk​ai​bj​其中的 ⊕\oplus⊕ 是 and or xor 中的一种位运算。 这个时候就需要快速莫比乌斯变换and or和快速沃尔什变换xor同样可以把复杂度降到 O(nlog⁡n)O(n\log n)O(nlogn) 级别。 解析 由于三个运算思想比较类似因此不对两个算法进行特别的区分统称为FWT。 采用类比的思想FFT先把多项式转化为点值表示乘到一起最后再反演回去。 类似的FWT也是先把多项式 A,BA,BA,B 转化为某种变换 FWT⁡(A),FWT⁡(B)\operatorname{FWT}(A),\operatorname{FWT}(B)FWT(A),FWT(B)然后乘起来得到 FWT⁡(C)\operatorname{FWT}(C)FWT(C)最后再反演回去得到 CCC。 根据不同位运算的性质对应的变换有所不同。 OR 定义 求ck∑i∣⁡jkaibjc_k\sum_{i\operatorname{|}jk}a_ib_jck​∑i∣jk​ai​bj​ 考虑或运算有如下性质若 i∣kk,j∣kki|kk,j|kki∣kk,j∣kk那么 (i∣j)∣kk(i|j)|kk(i∣j)∣kk反之亦然。 那么我们就按照这个充要条件设计变换FWT⁡or(A)k∑i∣kkAi\operatorname{FWT}_{or}(A)_k\sum_{i|kk}A_iFWTor​(A)k​∑i∣kk​Ai​。 自然语言iii 必须是 kkk 的子集才能转移。 考虑两个变换后的多项式逐项系数相乘 FWT⁡or(A)∗FWT⁡or(B)∑k(∑i∣kkai)×(∑j∣kkbj)\operatorname{FWT}_{or}(A)*\operatorname{FWT}_{or}(B)\sum_{k}(\sum_{i|kk}a_i)\times (\sum_{j|kk}b_j)FWTor​(A)∗FWTor​(B)k∑​(i∣kk∑​ai​)×(j∣kk∑​bj​) ∑k∑i∣kk∑j∣kkaibj∑k∑(i∣j)∣kkaibjFWT⁡or(C)\sum_{k}\sum_{i|kk}\sum_{j|kk}a_ib_j\sum_{k}\sum_{(i|j)|kk}a_ib_j\operatorname{FWT}_{or}(C)k∑​i∣kk∑​j∣kk∑​ai​bj​k∑​(i∣j)∣kk∑​ai​bj​FWTor​(C) 所以我们就证出了系数直接相乘是对的现在只需要一种快速的变换得到 FWT⁡or\operatorname{FWT}_{or}FWTor​ 以及将其反演的方法。 变换 还是和FFT类似的考虑分治假设我们要合并两个长度为 2n2^n2n 的序列设它们不同的最高位为1的序列为 A1A_1A1​为0的为 A0A_0A0​。 考虑 or的性质A0A_0A0​ 可以转移到 A1A_1A1​而 A1A_1A1​ 无法转移到 A0A_0A0​因此有 FWT⁡or(A)(FWT⁡or(A0),FWT⁡or(A0)FWT⁡or(A1))\operatorname{FWT}_{or}(A)(\operatorname{FWT}_{or}(A_0),\operatorname{FWT}_{or}(A_0)\operatorname{FWT}_{or}(A_1))FWTor​(A)(FWTor​(A0​),FWTor​(A0​)FWTor​(A1​)) 其中 表示系数逐项相加(f(x),g(x))(f(x),g(x))(f(x),g(x)) 表示把 f(x)f(x)f(x) 和 g(x)g(x)g(x) 顺次写出。 逆变换 那么对应的还原成原序列只需要逆向操作即可 UFWT⁡or(A)(UFWT⁡or(A0),UFWT⁡or(A0)−UFWT⁡or(A1))\operatorname{UFWT}_{or}(A)(\operatorname{UFWT}_{or}(A_0),\operatorname{UFWT}_{or}(A_0)-\operatorname{UFWT}_{or}(A_1))UFWTor​(A)(UFWTor​(A0​),UFWTor​(A0​)−UFWTor​(A1​)) 代码 写起来非常简洁 void Or(ll *x,int n,int op){for(int l1;ln;l1){for(int st0;stn;stl*2){for(int i0;il;i){ll ux[sti],vx[stli];if(op1) x[sti]u,x[stli](vu)%mod;else x[sti]u,x[stli](vmod-u)%mod;}}} }AND 和 or 的整个定义、证明几乎都是一样的。 求ck∑i⁡jkaibjc_k\sum_{i\operatorname{\}jk}a_ib_jck​∑ijk​ai​bj​ 与运算有如下性质若 ikk,jkki\kk,j\kkikk,jkk那么 (ij)kk(i\j)\kk(ij)kk反之亦然。 按照这个充要条件设计变换FWT⁡or(A)k∑i∣kkAi\operatorname{FWT}_{or}(A)_k\sum_{i|kk}A_iFWTor​(A)k​∑i∣kk​Ai​。 自然语言iii 必须是 kkk 的超集才能转移。 后面的证明一模一样变换也可以同理的得到 FWT⁡and(A)(FWT⁡and(A0)FWT⁡and(A1),FWT⁡and(A1))\operatorname{FWT}_{and}(A)(\operatorname{FWT}_{and}(A_0)\operatorname{FWT}_{and}(A_1),\operatorname{FWT}_{and}(A_1))FWTand​(A)(FWTand​(A0​)FWTand​(A1​),FWTand​(A1​)) UFWT⁡and(A)(UFWT⁡and(A0)−UFWT⁡and(A1),UFWT⁡and(A1))\operatorname{UFWT}_{and}(A)(\operatorname{UFWT}_{and}(A_0)-\operatorname{UFWT}_{and}(A_1),\operatorname{UFWT}_{and}(A_1))UFWTand​(A)(UFWTand​(A0​)−UFWTand​(A1​),UFWTand​(A1​)) 代码 void And(ll *x,int n,int op){for(int l1;ln;l1){for(int st0;stn;stl*2){for(int i0;il;i){ll ux[sti],vx[stli];if(op1) x[sti](uv)%mod,x[stli]v;else x[sti](umod-v)%mod,x[stli]v;}}} }XOR 这个和之前的有所不同。 定义 求ck∑i⊕⁡jkaibjc_k\sum_{i\operatorname{\oplus}jk}a_ib_jck​∑i⊕jk​ai​bj​ 设 d(x)d(x)d(x) 为二进制下 xxx 的1的个数的奇偶性模2的结果。 有性质d(ik)⊕d(jk)d((i⊕j)k)d(i\ k)\oplus d(j\ k)d((i\oplus j)\ k)d(ik)⊕d(jk)d((i⊕j)k)。 证明 由于与运算只考虑 kkk 为1的那些位。如果某一位 i,ji,ji,j 都是1或0那么等号两边的奇偶性都不改变如果某一位 i,ji,ji,j 一个是1一个是0那么等号两边的奇偶性都改变所以等号两遍的奇偶性始终同步改变最后就一定是相等的。 设计 FWT⁡xor(A)k∑i(−1)d(ik)ai\operatorname{FWT}_{xor}(A)_k\sum_{i} (-1)^{d(i\ k)}a_iFWTxor​(A)k​i∑​(−1)d(ik)ai​ 那么还是尝试逐项相乘 FWT⁡xor(A)∗FWT⁡xor(B)∑k(∑i(−1)d(ik)ai)×(∑j(−1)d(jk)bj)\operatorname{FWT}_{xor}(A)*\operatorname{FWT}_{xor}(B)\sum_k(\sum_{i} (-1)^{d(i\ k)}a_i)\times (\sum_{j} (-1)^{d(j\ k)}b_j)FWTxor​(A)∗FWTxor​(B)k∑​(i∑​(−1)d(ik)ai​)×(j∑​(−1)d(jk)bj​) ∑k∑i,j(−1)d(ik)d(jk)aibj∑k∑i,j(−1)d(ik)⊕d(jk)aibj\sum_k\sum_{i,j} (-1)^{d(i\ k)d(j\ k)}a_ib_j\sum_k\sum_{i,j} (-1)^{d(i\ k)\oplus d(j\ k)}a_ib_jk∑​i,j∑​(−1)d(ik)d(jk)ai​bj​k∑​i,j∑​(−1)d(ik)⊕d(jk)ai​bj​ ∑k∑i,j(−1)d((i⊕j)k)aibjFWT⁡xor(C)\sum_k\sum_{i,j} (-1)^{d((i\oplus j)\ k)}a_ib_j\operatorname{FWT}_{xor}(C)k∑​i,j∑​(−1)d((i⊕j)k)ai​bj​FWTxor​(C) 得证。 变换 还是分治的思想考虑到增加一位后只有下标最高位带1的数贡献到了下标最高位带1的位置时最高位与运算结果为11的个数增加一个奇偶性改变所有的符号都变为相反。其它的转移都不变。 也就是 FWT⁡xor(A)(FWT⁡xor(A0)FWT⁡xor(A1),FWT⁡xor(A0)−FWT⁡xor(A1))\operatorname{FWT}_{xor}(A)(\operatorname{FWT}_{xor}(A_0)\operatorname{FWT}_{xor}(A_1),\operatorname{FWT}_{xor}(A_0)-\operatorname{FWT}_{xor}(A_1))FWTxor​(A)(FWTxor​(A0​)FWTxor​(A1​),FWTxor​(A0​)−FWTxor​(A1​)) 逆变换 反过来即可。 FWT⁡xor(A)(FWT⁡xor(A0)FWT⁡xor(A1)2,FWT⁡xor(A0)−FWT⁡xor(A1)2)\operatorname{FWT}_{xor}(A)(\frac{\operatorname{FWT}_{xor}(A_0)\operatorname{FWT}_{xor}(A_1)}{2},\frac{\operatorname{FWT}_{xor}(A_0)-\operatorname{FWT}_{xor}(A_1)}{2})FWTxor​(A)(2FWTxor​(A0​)FWTxor​(A1​)​,2FWTxor​(A0​)−FWTxor​(A1​)​) 代码 void Xor(ll *x,int n,int op){for(int l1;ln;l1){for(int st0;stn;stl*2){for(int i0;il;i){ll ux[sti],vx[stli];if(op1) x[sti](uv)%mod,x[stli](umod-v)%mod;else x[sti](uv)%mod*499122177%mod,x[stli](umod-v)%mod*499122177%mod;}}} }Thanks for reading!
http://www.yutouwan.com/news/357514/

相关文章:

  • 佛山建站公司哪家好专业教育网站建设
  • 动易学校网站管理系统 漏洞seo外链优化培训
  • 企业网站哪里可以做深圳微商城网站制作费用
  • 雅安网站制作wordpress后台分类目录添加自定义
  • 学做简单网站深圳企业社保网站官网
  • 网站建设价格怎么算网站制作的内容包含
  • 公司网站设计与制烟台 做网站
  • 网站服务器放置地查询wordpress调用外链图片
  • 无锡网络公司无锡网站制作做跨境电商被骗了三万
  • 网站赏析软文时光发稿平台
  • 订货网站建设建设vip网站相关视频
  • 有什么网站做打印店品牌vi设计案例分析
  • 什么软件做网站描述正规网站建设定制
  • 网站建设专业名词解释网站制作wordpress页面模板下载地址
  • 深圳市公司网站建设企业小程序制作开发定制
  • 做网站的上香动画免费虚拟机安卓版
  • 如何做强企业网站怎么建立自己的公众号
  • 三门县正规营销型网站建设地址制作充值网站
  • html5 制作手机网站阿克顿巴网站建设的目的
  • 成都网站制作套餐wordpress调用文章的tags
  • 网站建设费是什么意思整站seo包年费用
  • 技术号的网站建设免费网络加速
  • 上海昆山网站公司哪家好在线做logo的网站
  • 飞凡网站建设我看别人做系统就直接网站下载文件
  • 网站建设时应该做的优化建设银行官网首页网站购纪念币
  • 做一个网站的建设过程电子政务网站建设的实验体会
  • aws的efs可以做网站的什么教学网站设计与开发
  • 网站开发虚拟主机系统wordpress 非常慢
  • 公司网站如何做百度收录建筑设计院分公司加盟
  • 潍坊行业网站有没有做吉祥物的网站