摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3216乱搞的...watashi是分块做的...但我并不知道什么是分块...大概就是把结果相同的数据合并计算打表跑了一下...发现重复出现的数字很多...于是直接找出会发生重复的数乘起来就行了.../********************* Template ************************/#include #include #include #include #include #include #include #include #include #in 阅读全文
posted @ 2013-10-06 20:30 Felix_F 阅读(227) 评论(0) 推荐(0) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4119依然是三维空间内求(1,1,1)~(a,b,c)能看到的整点数,平移一下转化成(0,0,0)~(a-1,b-1,c-1)就和前一题就一样了还是莫比乌斯反演求gcd(a,b,c)=1的组数,公式还是sigma{u(d) * ((a/d+1) * (b/d+1) * (c/d+1) - 1)}但直接暴力会T...所以加了分块优化...因为当a/d,b/d,c/d的值保持不变的时候...可以跳过很多数据所以维护一下miu的前缀和...中间相同的部分就可以直接得出了/***** 阅读全文
posted @ 2013-10-06 17:47 Felix_F 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 基本都是看jzp线性筛的...这些筛法都是O(n)的...比O(nloglogn)的算法优化了很多...主要思路都是对于每一个合数n,都由n的最小素因子唯一进行标记,避免了埃拉托斯特尼筛法的重复标记在处理欧拉和莫比乌斯函数的时候其实已经顺便筛了素数了...积性函数的性质是厉害...intcnt;int prime[MAXN];int pri[MAXN];int phi[MAXN];int miu[MAXN];/* 素数筛 */void pre_prime(){ mem(prime,0); cnt = 0; prime[0] = prime[1] = 1; for(int... 阅读全文
posted @ 2013-10-06 14:59 Felix_F 阅读(924) 评论(0) 推荐(0) 编辑
摘要: http://www.spoj.com/problems/VLATTICE/PS:jzp线性筛那个PPT做的很棒...浅显易懂...对理解莫比乌斯反演帮助很大http://www.isnowfy.com/mobius-inversion/再PS:这个博客介绍了莫比乌斯反演的一些基本知识,最后的例题也和这个差不多了...这题是求(0,0,0)~(N,N,N)中gcd(a,b,c)=1的点的个数显然就是莫比乌斯反演的板题了...很容易就能得出F(1) = sigma(miu(d)*(n/d)*(n/d)*(n/d))但这求出来的是(0,0,0)~(N,N,N)中 i,j,k>0 三维空间内点 阅读全文
posted @ 2013-10-06 11:47 Felix_F 阅读(405) 评论(0) 推荐(0) 编辑