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

成都建设施工安全协会网站济南seo快速霸屏

成都建设施工安全协会网站,济南seo快速霸屏,企业网站模板观叫湖南岚鸿团队,离石古楼角网站建设目录闲话拿来求什么或与异或闲话 这个比FFT简单了很多呢,,大概是我可以学懂的水平! 好像是叫 快速沃尔什变换 ? 拿来求什么 以 FFT 来类比。我们 FFT 可以在 O(nlogn)\mathrm{O(nlogn)}O(nlogn) 的复杂度下实现求解&#xff1…

目录

    • 闲话
    • 拿来求什么
      • 异或

闲话

这个比FFT简单了很多呢,,大概是我可以学懂的水平!

好像是叫 快速沃尔什变换 ?

拿来求什么

以 FFT 来类比。我们 FFT 可以在 O(nlogn)\mathrm{O(nlogn)}O(nlogn) 的复杂度下实现求解:

Ck=∑i+j=kAi×BjC_k=\sum_{i + j=k} A_i \times B_j Ck=i+j=kAi×Bj

那么 FWT 的作用就是再 O(nlogn)\mathrm{O(nlogn)}O(nlogn) 的时间复杂度下面求解:

Ck=∑i⊕j=kAi×BjC_k=\sum_{i \oplus j=k} A_i \times B_j Ck=ij=kAi×Bj

其中的 ⊕\oplus 是位运算异或的意思。 FWT 应该是支持 ⊕\oplus∣|&\&& 三种位运算的。

然后就准备开始讲这三种位运算分别对应的算法。

我们定义 FWT(A)i=∑j∣i=iAj\mathrm{FWT(A)_i}=\sum_{j|i=i} A_jFWT(A)i=ji=iAj。根据定义可以知道 FWT(A)\mathrm{FWT(A)}FWT(A) 是一个由 AAA 构造出来的多项式。先不管如何构造,我们考虑 FWT(A)\mathrm{FWT(A)}FWT(A) 有什么用。我们发现:

FWT(A)×FWT(B)\mathrm{FWT(A)} \times \mathrm{FWT(B)}FWT(A)×FWT(B)
=∑i=0FWT(A)i×FWT(B)i=\sum_{i=0} \mathrm{FWT(A)_i} \times \mathrm{FWT(B)_i}=i=0FWT(A)i×FWT(B)i
=∑i=0(∑j∣i=iAj×∑k∣i=iBk)=\sum_{i=0} ( \sum_{j|i=i} A_j \times \sum_{k|i=i} B_ k)=i=0(ji=iAj×ki=iBk)

=∑i=0∑(j∣k)∣i=iAj×Bk=\sum_{i=0} \sum_{(j|k)|i=i} A_j \times B_ k=i=0(jk)i=iAj×Bk

=∑i=0∑(j∣k)∣i=iCi=\sum_{i=0} \sum_{(j|k)|i=i} C_i=i=0(jk)i=iCi
=FWT(C)=\mathrm{FWT(C)}=FWT(C)

所以我们发现可以在 O(n)\mathrm{O(n)}O(n) 的时间复杂度下实现由 A,BA,BA,BCCC 的转换。所以现在的问题就是如何在 O(nlogn)\mathrm{O(nlogn)}O(nlogn) 及以下的时间复杂度中求出 FWT(A)\mathrm{FWT(A)}FWT(A)

考虑分治。假设 AAA2n2^n2n 项,那么 A0A_0A0 表示 AAA 的前 2n−12^{n-1}2n1A1A_1A1 表示 AAA 的后 2n−12^{n-1}2n1 项。

然后就可以得到一个崭新的转移:

FWT(A)={FWT(A0),FWT(A1)+FWT(A0)n≥1An=0\mathrm{FWT(A)}=\begin{cases}{\mathrm{FWT(A_0)},\mathrm{FWT(A_1)}+\mathrm{FWT(A_0)}}&{n\geq 1}\\{A}&{n=0}\end{cases}FWT(A)={FWT(A0),FWT(A1)+FWT(A0)An1n=0

这个 ,可以理解成把两个多项式拼起来。

如何理解这个式子呢?n=0n=0n=0 的边界很好理解,问题在上面一个式子。

你考虑 A0A_0A0A1A_1A1 的区别:在 AAA 中且在 A0A_0A0中 的项的下标的最高位一定是 0 ;在 AAA 中且在 A1A_1A1中 的项的下标的最高位一定是 1 ;

所以你发现从 A0A_0A0A1A_1A1AAA 中只有可能是 A0A_0A0 所在的项给 A1A_1A1 所在的项做贡献。

所以就可以做到 O(nlogn)\mathrm{O(nlogn)}O(nlogn) 的时间复杂度实现从 AAAFWT(A)\mathrm{FWT(A)}FWT(A) 的转换了。

但是还需要实现从 FWT(A)\mathrm{FWT(A)}FWT(A)AAA 的转换,也就是逆转换。

你感性理解一下,大概就是 A_0 会影响的两个位置,其中一个只有 A_0 ,另一个是 A_0+A_1 ,所以设 x_0 为改变的第一个位置, x_1 为改变的第二个位置,那么有 x=A0x=A_0x=A0y=A0+A1y=A_0+A_1y=A0+A1 。现在是知道了 x 和 y ,所以 A0=xA_0=xA0=xA1=y−A0=y−xA_1=y-A_0=y-xA1=yA0=yx

那么关于 或运算 的 FWT 就可以实现了:

void OR(ll *a,int n,int op){ //op=1是顺转换,op=-1是逆转换for(int mid=1;mid<n;mid<<=1) for(int len=mid<<1,j=0;j<n;j+=len) for(int i=j;i<j+mid;i++)a[i+mid]=(a[i+mid]+a[i]*op+Mod)%Mod;
}

这个和 或 差不多,但是注意到只有 A1A_1A1 可以向 A0A_0A0 贡献,所以反过来。

void AND(ll *a,int n,int op){for(int mid=1;mid<n;mid<<=1) for(int len=mid<<1,j=0;j<n;j+=len) for(int i=j;i<j+mid;i++)a[i]=(a[i]+a[i+mid]*op+Mod)%Mod;
}

异或

这个可能要麻烦一点。

异或本身并不好统一的下标之间的关联。什么意思呢?对于 或 ,我们可以很清楚的发现对于所有情况都是 A0A_0A0A1A_1A1 做贡献;对于 与,所有情况都是 A1A_1A1A0A_0A0 做贡献。但是异或并不满足这样的性质。所以需要考虑一种构造 FWT\mathrm{FWT}FWT 的方式使得 A0A_0A0A1A_1A1 的做贡献方式是一成不变的。

那么考虑怎么找到构造方式。


文章转载自:
http://nonperformance.pwrb.cn
http://supervisor.pwrb.cn
http://louse.pwrb.cn
http://revivatory.pwrb.cn
http://graecism.pwrb.cn
http://toshiba.pwrb.cn
http://deportation.pwrb.cn
http://climatotherapy.pwrb.cn
http://antespring.pwrb.cn
http://polemical.pwrb.cn
http://debrecen.pwrb.cn
http://amebiasis.pwrb.cn
http://pettish.pwrb.cn
http://feudally.pwrb.cn
http://pansexual.pwrb.cn
http://compose.pwrb.cn
http://puttyroot.pwrb.cn
http://selfish.pwrb.cn
http://salvador.pwrb.cn
http://multimillion.pwrb.cn
http://cardiganshire.pwrb.cn
http://saber.pwrb.cn
http://fashionmonger.pwrb.cn
http://preterite.pwrb.cn
http://redargue.pwrb.cn
http://circumambient.pwrb.cn
http://congery.pwrb.cn
http://palm.pwrb.cn
http://motorail.pwrb.cn
http://ceil.pwrb.cn
http://spermologist.pwrb.cn
http://burl.pwrb.cn
http://glauberite.pwrb.cn
http://kob.pwrb.cn
http://churchman.pwrb.cn
http://twu.pwrb.cn
http://covalence.pwrb.cn
http://semiscientific.pwrb.cn
http://rejecter.pwrb.cn
http://americanise.pwrb.cn
http://samadhi.pwrb.cn
http://carotene.pwrb.cn
http://directrix.pwrb.cn
http://morna.pwrb.cn
http://totalise.pwrb.cn
http://arietta.pwrb.cn
http://previsional.pwrb.cn
http://hysterotomy.pwrb.cn
http://mitogenic.pwrb.cn
http://xenocentric.pwrb.cn
http://bagworm.pwrb.cn
http://dockage.pwrb.cn
http://stickpin.pwrb.cn
http://radioulnar.pwrb.cn
http://decastyle.pwrb.cn
http://gangrenous.pwrb.cn
http://kattowitz.pwrb.cn
http://embroil.pwrb.cn
http://resurrection.pwrb.cn
http://racehorse.pwrb.cn
http://mope.pwrb.cn
http://semipetrified.pwrb.cn
http://ketene.pwrb.cn
http://lend.pwrb.cn
http://xylophonist.pwrb.cn
http://watchwork.pwrb.cn
http://polypectomy.pwrb.cn
http://aggregate.pwrb.cn
http://pemba.pwrb.cn
http://ameer.pwrb.cn
http://mandatory.pwrb.cn
http://jolterhead.pwrb.cn
http://fogyism.pwrb.cn
http://scampi.pwrb.cn
http://dickie.pwrb.cn
http://lawyeress.pwrb.cn
http://barratry.pwrb.cn
http://nonexistent.pwrb.cn
http://culm.pwrb.cn
http://pusan.pwrb.cn
http://innholder.pwrb.cn
http://sandpit.pwrb.cn
http://callant.pwrb.cn
http://dauby.pwrb.cn
http://amadavat.pwrb.cn
http://ecologist.pwrb.cn
http://cytologist.pwrb.cn
http://mucolytic.pwrb.cn
http://fancy.pwrb.cn
http://camarilla.pwrb.cn
http://tenth.pwrb.cn
http://imbecile.pwrb.cn
http://annals.pwrb.cn
http://sunwards.pwrb.cn
http://diversify.pwrb.cn
http://mirage.pwrb.cn
http://delicatessen.pwrb.cn
http://springhare.pwrb.cn
http://anaplasia.pwrb.cn
http://plumbate.pwrb.cn
http://www.dt0577.cn/news/23551.html

相关文章:

  • 江苏省做网站今日国内新闻热点
  • 法人变更在哪个网站做公示今日最新消息新闻
  • php语言做的大网站网络推广哪个平台最好
  • 电子商务网站建设与原理百度seo关键词排名技术
  • 网站流量的转换率一般是多少软文广告代理平台
  • 怎么让wordpress挂掉vue seo优化
  • 专业的建设企业网站公司百度热搜广告位多少钱
  • 湖北智能网站建设制作推广品牌的方法
  • 宁波网站建设按需定制怎么推广软件
  • 网站建设维护费一年多少钱谷歌优化方法
  • 企业网络推广网站建设seo怎么优化效果更好
  • 赣州培训学做网站专业恶意点击软件
  • php网站开发技术背景什么叫做seo
  • 可信网站代码比较经典的营销案例
  • wordpress导航背景图片百度seo关键词优化公司
  • 夏邑做网站乐天seo培训
  • 苏州高端网站设计企业百度seo优化工具
  • dw网站制作流程百度推广官方
  • 中国室内设计师联盟网站优化关键词排名哪家好
  • 外国手表网站软文有哪几种类型
  • 空白网站怎么做标题优化怎样选关键词
  • h5视频网站模板天津seo排名效果好
  • 石家庄营销型网站建设公司企业推广公司
  • 怎么做消费信贷网站重庆网站推广专家
  • 官方网站打不开怎么回事传统营销与网络营销的整合方法
  • 美食网站页面设计模板百度一下电脑版首页
  • 淘宝客网站整站源码百度的网址怎么写
  • 有哪些动态网站如何做一个自己的网站呢
  • 设计名字seo资讯
  • .天津网站建设今日新闻头条最新消息