
分块
HermioneL
年轻的好处在于,你还没有太多经验,并天生相信一切皆可能。
展开
-
BZOJ 1257 [CQOI2007]余数之和
题目在这里呀!题解一道会杜教筛或者分块的人都应该会写的题啦。 首先考虑简单简单版: ∑i=1n⌊ni⌋ \sum_{i=1}^n \lfloor \frac{n}{i} \rfloor 这个问题我们直接对⌊ni⌋ \lfloor \frac{n}{i} \rfloor 分块即可。那么很好转换到这个问题, ∑i=1nnmodi=∑i=1n(n−⌊ni⌋∗i) \sum_{i=1}^n n原创 2018-04-24 22:54:07 · 261 阅读 · 0 评论 -
51nod 欧拉函数之和
题目在这里呀!跟上面一题一样,也是杜教筛的基础题。推导也跟上面一题基本一样。for(int i=1;iφ*1=id 所以呢ans=n*(n+1)/2。同样的,for(int i=1;i<=n;i++) for(int j=1;j后者的ans也等于n*(n+1)/2,不再解释了。同样把i=1的单独拿出来通过移项就可以得到Σi=1~n φ(i) =原创 2018-03-05 10:45:27 · 264 阅读 · 0 评论 -
51nod 莫比乌斯函数之和
题目在这里呀!最近学了一下杜教筛,emm随便写个题解啦,把模板放上来而已ww我觉得这篇博客讲解的很清晰qwq简单讲一下,首先对于1到n的每个数i,d为i的约数,将mu[d]求和,和为1。换句话说就是for(int i=1;ians的值为1,为什么呢,μ*1=(n==1 ? 1 : 0)也就是epsilon然后,可以发现上式也等于for(int i=1;i原创 2018-03-05 10:20:00 · 349 阅读 · 0 评论 -
BZOJ 3944 Sum
题目在这里呀前两题结合起来就是这题(把一些memset都去掉就不T了?!//Suplex#include #include #include #include #include #define N 2000000+500#define ll long longusing namespace std;const int mod=1000007;cons原创 2018-03-05 10:48:02 · 199 阅读 · 0 评论 -
BZOJ 2956 模积和 (分块)
题目在这里呀!题意BZOJ 1257的加强版,多了一个?那就把它展开来啦。 ∑i=1n∑j=1m(nmodi)∗(mmodj)(i!=j) \sum_{i=1}^n \sum_{j=1}^m (n mod i)*(m mod j) (i!=j) =∑i=1n∑j=1m(nmodi)∗(mmodj)−∑i=1n(n−⌊ni⌋∗i)∗(m−⌊mi⌋∗i)=\sum_{i=1}^n \sum_{j=1原创 2018-04-24 23:17:00 · 210 阅读 · 0 评论