BZOJ-5244 最大真因数(min25筛)】的更多相关文章

题意:一个数的真因数指不包括其本身的所有因数,给定L,R,求这个区间的所有数的最大真因数之和. 思路:min25筛可以求出所有最小因子为p的数的个数,有可以求出最小因子为p的所有数之和. 那么此题就是对于所有素数因子,求它对应的和. #include<bits/stdc++.h> using namespace std; #define ll unsigned long long ; ll Sqr,vis[maxn],pri[maxn],sp[maxn],tot,m,id1[maxn],id2…
怕忘了赶快更一下.就是求积性函数前缀和的. 没有 \(\LaTeX\) 原理 现在你有一个积性函数 f(1)=1 FP(p) FPK(p,k) 首先要求的是前缀和,那就是f(质数)+f(合数)+f(1),然后f(1)=1直接最后加上,算前面的时候直接忽略掉. 首先算质数(min25筛第一阶段) 为了能做必须先把f(x)搞成一堆完全积性函数的和一起筛,下面以其中一个f(x)为例 设G(n,j)为2-n中i(i是质数或者i的最小质因子>pj)的f(i)之和,f是积性函数中的FP函数 按j从小到大分层…
题面 Description 一个合数的真因数是指这个数不包括其本身的所有因数, 例如 6 的正因数有1, 2, 3, 6,其中真因数有 1, 2, 3. 一个合数的最大真因数则是这个数的所有真因数中最大的一个,例如 6 的最大真因数为 3. 给定正整数 l 和 r,请你求出 l 和 r 之间(包括 l 和 r)所有合数的最大真因数之和. Input 输入共一行,包含两个正整数 l 和 r.保证 l ≤ r. Output 输出共一行,包含一个整数,表示 [l,r] 内所有合数的最大真因数之和.…
题意 求 \[ \sum_{i = 1}^{n} \sum_{i = 1}^{n} f(\gcd(i, j))^k \pmod {2^{32}} \] 其中 \(f(x)\) 为 \(x\) 的次大质因子,重复的质因子计算多次. 特别的,定义 \(f(1) = 0, f(p) = 0\) ,此处 \(p\) 为质数. 题解 首先先莫比乌斯反演前几步. \[ ans = \sum_{d = 1}^{n} f(d)^k \sum_{i = 1}^{\lfloor \frac{n}{d} \rfloo…
题意 题目链接 Sol min25筛的板子题,直接筛出\(g(N, \infty)\)即可 筛的时候有很多trick,比如只存\(\frac{N}{x}\)的值,第二维可以滚动数组滚动掉 #include<bits/stdc++.h> #define LL long long //#define int long long using namespace std; const int MAXN = 2e6 + 10; int Lim, vis[MAXN], prime[MAXN], tot;…
「学习笔记」Min25筛 前言 周指导今天模拟赛五分钟秒第一题,十分钟说第二题是 \(\text{Min25}​\) 筛板子题,要不是第三题出题人数据范围给错了,周指导十五分钟就 \(\text{AK}​\) 了,为了向 \(\text{AK}​\)王 学习,真诚的膜拜他,接受红太阳的指导,下午就学习了一下 \(\text{Min25}​\) 筛. 简介 如果 \(f(n)\) 是一个积性函数,且 \(f(n)\) 是一个关于 \(n\) 的简单多项式,并可以快速算出 \(f(p^k),\ p\…
再不写总结我又会忘掉啊啊啊啊啊啊啊啊啊 这个\(min-25\)筛主要用来求一个积性函数的前缀和,就像这样\[\sum_{i=1}^n f(i)\] 不过这个积性函数要满足两个条件:质数\(p\)的函数值\(f(p)\)有个多项式表达,\(f(p^c)\)能够快速计算 \(min-25\)筛求前缀和的过程可以看成把所有数贡献分成质数贡献和合数贡献计算(可能有\(1\)的贡献).先考虑质数的贡献 ... 好像除了暴力没有更好的办法啊 不过可以发现一个数\(>\sqrt{n}\)的质因子最多只有一个…
前言 杜教筛学了,顺便把min25筛也学了吧= =刚好多校也有一道题需要补. 下面推荐几篇博客,我之后写一点自己的理解就是了. 传送门1 传送门2 传送门3 这几篇写得都还是挺好的,接下来我就写下自己对min25筛的理解吧 . 正文 简介: min25筛同杜教筛类似,是用来解决一类积性函数的前缀和,即\(\sum_{i=1}^nF(i)\),并且这里的\(n\)可以达到\(10^{10}\)的规模. 但所求积性函数要求满足以下条件: \(F(p)\)可以表示为简单多项式的形式,比如\(p_1^{…
pro:给定三个整数L,R,P求[L,R]区间的整数有多少个是以P为最小因子的.L,R,P<2e9; sol: 一: 比较快的做法是,用函数的思想递归. 用solve(N,P)表示求1到N有多少数字多少个的最小因子是P: 1,首先P是合数,或者N<P:solve=0: 2,否则,如果P*P>=N:solve=1: 3,solve=N/P-solve(N/P,i);     2<=i<P 由于P主要分布在sqrt(N),而且N每次log级别减小,所以收缩得很快.具体的复杂度我证…
Min25筛 我是沙雕... 从yyb博客蒯的 要求:\(\sum_{i=1}^nF(x)\) \(F(x)\)是积性函数. \(Min25\)筛能用的前提:质数处的\(f(p)\)值是关于\(p\)的多项式,质数次方处的\(f(p^e)\)值 可以快速计算. 预处理 设完全积性函数\(F'(x)\),在质数处取值\(F(p)=F'(p)\). 预处理一个\(g\)函数.\(g(n,j)=\sum_{i=1}^nF'(i)[i\in\mathbb{P}\text{ or }\min_{p|i}p…