线性筛
文章平均质量分 55
_beginend
这个作者很懒,什么都没留下…
展开
-
51nod 1769 Clarke and math2 线性筛+数学
题意 1 ≤ n ≤ 500000, 1 ≤ k ≤ 10^1000000分析刚看题目的时候被这个k的大小吓到了。。。 你考虑枚举每个f(i)对g(j)的贡献,那么它们的系数显然只跟j/i有关,设为val(j/i)。考虑如何求出val[x]。 从i变到j的过程我们可以看做变化k-1次,每一次都乘上一个数,只要满足每个数乘起来是x的因数即可。 考虑x的每种素因数对val[x]的贡献。不妨设该种原创 2017-11-03 21:56:51 · 689 阅读 · 0 评论 -
51nod 1375 再选数 容斥原理+线性筛
题意从前有n个正整数,我们令它为a[1]到a[n]。现在要从选出恰好k个数(如果k=-1则为选任意个数,但是至少选一个),要求这些数的最大公约数是1,问有多少种方案? 答案可能很大,模998,244,353输出。 1≤n≤100,000;1≤k≤n或k=-1。所有的1≤a[i]≤1,000,000并且是随机生成的。分析考虑容斥,用全部方案减去gcd大于1的方案。可以枚举gcd有原创 2018-01-15 21:46:40 · 329 阅读 · 0 评论 -
AtCoder Regular Contest 080 F - Prime Flip 线性筛+匈牙利算法
题意有一个无限长的01序列,其中n个位置上是1,其余都是0。每次可以选择一个长度为奇素数的区间,然后将这个区间内的元素取反。问最少多少步后可以将整个序列变为0。 n<=100,ai<=10^7分析首先差分一下,不难发现1的个数一定是偶数,那么操作就变成了每次可以把两个位置[l-1,r]同时取反。 现在问题就变成了让这偶数个1两两配对,使得总操作数最小。 对于两个数...原创 2018-02-18 23:20:03 · 377 阅读 · 0 评论 -
51nod 1778 小Q的集合 lucas定理+线性筛+数学
题意小Q有一个集合SSS,它的元素个数|S|=n|S|=n|S|=n。 对于SSS的任意一个子集合TTT,定义f(T)=|T|kf(T)=|T|kf(T)=|T|^k,定义TTT关于SSS的补集为S−TS−TS−T。 小Q想知道,如果他等概率地选择一个SSS的子集TTT,那么f(T)−f(S−T)f(T)−f(S−T)f(T)−f(S−T)的方差是多少。 由于这个方差值可能很大,不妨设其...原创 2018-03-13 20:36:01 · 306 阅读 · 0 评论 -
Codeforces 870F Paths 线性筛
题意有一个n个节点的图,节点i和节点j之间有长度为1的连边当且仅当gcd(i,j)≠1gcd(i,j)≠1gcd(i,j)\not=1。 设dis(u,v)dis(u,v)dis(u,v)表示u到v的最短路,若u不能到达v则dis(u,v)=0。dis(u,v)=0。dis(u,v)=0。求∑u<vdis(u,v)∑u<vdis(u,v)\sum_{un<=107n<...原创 2018-03-14 07:32:50 · 310 阅读 · 0 评论 -
bzoj 2790: [Poi2012]Distance 线性筛+乱搞
题意对于两个正整数a、b,这样定义函数d(a,b):每次操作可以选择一个质数p,将a变成a*p或a/p, 如果选择变成a/p就要保证p是a的约数,d(a,b)表示将a变成b所需的最少操作次数。例如d(69,42)=3。 现在给出n个正整数A1,A2,…,An,对于每个i (1<=i<=n),求最小的j(1<=j<=n)使得i≠j且d(Ai,Aj)最小。 2<...原创 2018-03-26 15:18:21 · 253 阅读 · 0 评论 -
51nod 1585 买邮票送邮票 容斥原理+线性筛
题意商店里面有n张邮票,现在去买一张,然后老板会送若干张(至少一张)邮票。如果老板送的邮票的面值的最大公约数不是1,并且老板送的邮票和我们购买的邮票的面值最大公约数是1,那么就是一组好的邮票组合。问有多少种好的邮票组合。 2≤n≤5*10^5,2≤ai≤10^7。由于结果比较大,对 10^9+7取余后输出即可。分析不难注意到其实素因数上的指数是没用的。考虑枚举gcd,设为p,当我们随便选取p的倍数原创 2017-11-06 15:20:50 · 340 阅读 · 0 评论 -
bzoj 2813: 奇妙的Fibonacci 数学+线性筛
题意Fibonacci数列是这样一个数列: F1 = 1, F2 = 1, F3 = 2 … Fi = Fi-1 + Fi-2 (当 i >= 3) pty忽然对这个古老的数列产生了浓厚的兴趣,他想知道:对于某一个Fibonacci数Fi, 有多少个Fj能够整除Fi (i可以等于j),他还想知道所有j的平方之和是多少。答案模1e9+7。 第一行一个整数Q,表示Q个询问。 第二行四个整数:原创 2017-10-09 19:33:26 · 281 阅读 · 0 评论 -
bzoj 2721: [Violet 5]樱花 线性筛
题意:求一元不定方程1/x+1/y=1/n!分析:一开始看着题的时候一点思路都没有,看了题解才发觉这题的脑洞蛮大的。 我们设z=n! 1/x+1/y=1/z x=yz/(y-z) 设t=y-z 则x=z+(z^2)/t 那么题目就变成了求z^2的约数个数 那么只要线性筛搞一搞就可以了。顺便吐槽一下这题居然连样例都没有…… 在这里就附带一个样例好了 n=10 ans=2295代码:原创 2016-10-11 21:16:46 · 382 阅读 · 0 评论 -
bzoj 2440: [中山市选2011]完全平方数 莫比乌斯函数
题目传送门分析莫比乌斯函数μ(i)=(−1)k(-1)^k(i为k个互不相等的素数的成绩),否则μ(i)=0 那么对于这题,可以想到用容斥原理,那么答案就是n-奇数个质数的平方的倍数的个数+偶数个质数的平方的倍数的个数 那么ans=Σμ[i]*(n/i^2) (i<=sqrt(n))记得开long long代码#include<iostream>#include<cstdio>#includ原创 2016-11-08 12:20:15 · 334 阅读 · 0 评论 -
bzoj 2226: [Spoj 5971] LCMSum 数学+欧拉函数
题意求∑ni=1lcm(i,n)\sum_{i=1}^n lcm(i,n) T<=300000 n<=1000000分析ans=∑ni=1lcm(i,n)ans=\sum_{i=1}^nlcm(i,n)=∑ni=1i∗ngcd(i,n)=\sum_{i=1}^n\frac{i*n}{gcd(i,n)}=∑d|n∑gcd(i,nd)=11<=i<=ndn∗i=\sum_{d|n}\sum_{1<=原创 2017-03-20 20:11:22 · 402 阅读 · 0 评论 -
bzoj 1485: [HNOI2009]有趣的数列 卡特兰数
题意我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件:我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列ai; (1)它是从1到2n共2n个整数的一个排列{ai}; (2)所有的奇数项满足a1<a3<…<a2n−1,所有的偶数项满足a2<a4<…<a2n; (2)所有的奇数项满足a1<a3<…<a2n-1原创 2017-03-07 15:10:13 · 887 阅读 · 0 评论 -
bzoj 3288: Mato矩阵 线性筛
题意Mato同学最近正在研究一种矩阵,这种矩阵有n行n列第i行第j列的数为gcd(i,j)。 例如n=5时,矩阵如下: 1 1 1 1 1 1 2 1 2 1 1 1 3 1 1 1 2 1 4 1 1 1 1 1 5 Mato想知道这个矩阵的行列式的值,你能求出来吗? 答案模10^9+7 n<=1000000分析一开始想到可以先根据高斯消元推出来把该矩阵消成下三角矩阵后对角线上的原创 2017-05-18 15:04:20 · 359 阅读 · 0 评论 -
bzoj 1409: Password 矩阵乘法+线性筛
题意Rivest是密码学专家。近日他正在研究一种数列E = {E[1],E[2],……,E[n]}, 且E[1] = E[2] = p(p为一个质数),E[i] = E[i-2]*E[i-1] (若2< i<=n)。 例如{2,2,4,8,32,256,8192,……}就是p = 2的数列。在此基础上他又设计了一种加密算法,该算法可以通过一个密钥q (q < p)将一个正整数n加密成另外一个正整原创 2017-10-08 20:40:03 · 298 阅读 · 0 评论 -
hdu 5780 gcd 线性筛+数论
题意给出n个x,求∑1≤a,b≤ngcd(xa−1,xb−1)∑1≤a,b≤ngcd(xa−1,xb−1)\sum_{1\le a,b\le n}gcd(x^a-1,x^b-1) 1≤n,x≤1000001≤n,x≤1000001\le n,x\le100000,300组数据。分析有个结论就是gcd(xa−1,xb−1)=xgcd(a,b)−1gcd(xa−1,xb−1)=xgc...原创 2018-04-03 17:38:27 · 330 阅读 · 0 评论