06 2016 档案

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

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