Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

06 2016 档案

摘要:第一问: 设a[i]表示使用[1,i]的数字n次形成的数组里有多少个gcd。 考虑容斥,则a[i]=i^n-\sum_{j=2}^i a[\lfloor\frac{i}{j}\rfloor],可以分\sqrt{i}段算出。 $ans=\sum_{i=l}^r a[\lf 阅读全文
posted @ 2016-06-29 01:34 Claris 阅读(658) 评论(0) 推荐(0) 编辑
摘要:将所有盒子插入链表,每当一个盒子变空时,从链表里删去它。 查一下它的前驱后继pre,nxt,那么[pre+1,nxt-1]都是空的。 每次对于[A,B]这段都为空,对小朋友按R维护线段树,维护区间内L的最大值,不断询问[1,B]L的最大值,如果\geq A则拿出来。 阅读全文
posted @ 2016-06-27 16:46 Claris 阅读(799) 评论(0) 推荐(0) 编辑
摘要:如果答案在某个碎片内部,那么直接悬线法解决,时间复杂度O(n\sum)。 如果n比较大,那么\sum比较小。 求出每个点向上能延伸的长度,枚举每个点向上这条线段作为短板。 算出完全可选的碎片的长度之和以及不能完全选,左边右边最大次大延伸距离,更新答案。 时间复杂度O(n\sum^2) 阅读全文
posted @ 2016-06-26 00:46 Claris 阅读(316) 评论(0) 推荐(0) 编辑
摘要:将数字离散化并去重,则对于一对逆序对i<j,a_i>a_j,其贡献为\frac{2}{a_i-a_j+1},因此只要对于每个差值统计出对应的逆序对个数即可。 将序列分块,块内平方暴力,块与块之间做FFT即可。 时间复杂度O(n\sqrt{n\log n})。 #include<cst 阅读全文
posted @ 2016-06-23 17:35 Claris 阅读(292) 评论(0) 推荐(0) 编辑
摘要:设A[i][j]=[a[i][j]=G],B[i][j]=[b[i][j]=L],枚举右下角,则对应(A-B)^2的和就是匹配成功的格子数。 (a-b)^2=a^2+b^2-2ab,将矩阵展开成一维,然后将B翻转,用FFT求出\sum a\times b即可。 时间复杂度$O(B 阅读全文
posted @ 2016-06-23 16:06 Claris 阅读(338) 评论(0) 推荐(0) 编辑
摘要:g是积性函数,可以通过分解质因数在O(n\log n \log\log n)的时间内求出。 对于((A\times B)\times C)\times D,可以转化为D\times (C\times (B\times A)),并视向量个数的奇偶性取反答案。 对于$D\times (C 阅读全文
posted @ 2016-06-08 01:15 Claris 阅读(563) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示