
分块
文章平均质量分 68
CR1SceNT
这个作者很懒,什么都没留下…
展开
-
BZOJ3994: [SDOI2015]约数个数和
BZOJ3994d(x)为x的约数个数d(x)为x的约数个数 求∑ni=1∑mj=1d(i,j)\sum_{i=1}^n\sum_{j=1}^m d(i,j) 有个很神奇的结论。。上式=∑i=1n∑j=1m[gcd(i,j)==1]ni∗mj上式=\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==1] {\frac{n}{i}*\frac{m}{j}} QnQQnQ像我这样原创 2017-06-16 10:34:08 · 830 阅读 · 0 评论 -
BZOJ4028: [HEOI2015]公约数数列
BZOJ4028看着这么神的题,最后发现是个“聪明人”打的暴力。。 首先进行分块,维护每一块内的Gcd和XorGcd和Xor,每个块内存下二元组x,Xorx,Xor表示位置和当前位置的亦或值,按照亦或值为第一关键字排序。 对于一次修改就将块内信息重新维护,每次O(n√logn√)O(\sqrt{n}log_{\sqrt{n}}) 对于一次询问,记LastGcd,LastXorLastGcd,L原创 2017-06-16 11:16:35 · 597 阅读 · 0 评论 -
BZOJ4850: [Jsoi2016]灯塔
BZOJ4850很容易发现sqrt(|i−j|)sqrt(|i-j|)很多情况下都是相等的。 那么就可以考虑分块。(题目应该是hj≤hi+p−sqrt(|i−j|)hj≤hi+p-sqrt(|i-j|)) 当sqrt(|i−j|)=xsqrt(|i-j|)=x时,令MxMx为所有满足sqrt(|i−j|)=xsqrt(|i-j|)=x的jj中,最大的hjh_j值。 那么p>=Mx+sqrt(|原创 2017-06-06 18:22:20 · 759 阅读 · 0 评论 -
BZOJ4815: [Cqoi2017]小Q的表格
BZOJ4815b×f(a,a+b)=(a+b)∗f(a,b)b×f(a,a+b)=(a+b)*f(a,b)很像辗转相减法。。 那么每次修改点(a,b)(a,b)的值,会修改所有满足gcd(i,j)==gcd(a,b)gcd(i,j)==gcd(a,b)的点(i,j)(i,j)的值。 记d=gcd(a,b)d=gcd(a,b),那么fi,j=x∗i/d∗j/df_{i,j}=x*i/d*j/d(原创 2017-06-08 15:25:04 · 680 阅读 · 0 评论