算法分享
不归路___
某中下游985科班大三在读,备战考研某上游985ing
展开
-
树状数组
树状数组满足树形结构,只需要n的数组。 上图更直观: 上面的树状数组是c,下面队列数组是a。 c[2]是c[1]和a[2]的父亲节点(也可以理解为c[1]=a[1],c[2]是a[1]和a[2]的父亲节点,注意不是所有的i都有a[i]=c[i],a[2]≠c[2],显然只有a[2*k+1]=c[2*k+1])c[6]是a[5](c[5])和a[6]的父亲节点,c[4]是c[2](原创 2016-09-05 21:51:55 · 736 阅读 · 0 评论 -
欧拉函数
欧拉函数求的是小于等于n的正整数中与n互质的数的个数。 例如φ(8)=4,因为1,3,5,7均和8互质。 通式: 其中p1, p2……pn为x的所有质因数,x是不为0的整数。 φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。 注意:每种质因数只一个。 比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4 若n是质数p的k次幂, ,因为原创 2016-09-03 16:43:35 · 876 阅读 · 0 评论 -
拓扑排序
拓扑序列是将一个有向无环图的点排序后的序列,排序规则是,对任意一条由v指向u的边都满足在序列中v在u左边,显然,对于一个有向无环图,拓扑序列可能不唯一。 为什么要有向?因为拓扑排序的规则就是方向。 为什么要无环?如果对于u和v两个点在同一个环内,就意味着u可以到v,v可以到u,那么在拓扑序列中,u是在v的左边还是右边呢? 说一下拓扑排序的思路。(看了很多代码都没看懂 只看懂了拓扑序列 下面是原创 2016-09-03 14:46:32 · 866 阅读 · 0 评论