题面 洛谷 \(\sigma_0(i)\) 表示\(i\) 的约数个数 求\(S_k(n)=\sum_{i=1}^n\sigma_0(i^k)\mod 2^{64}\) 多测,\(T\le10^4,n,k\le10^{10}\) 题解 令\(f(i)=\sigma_0(i^k)\)首先可以发现几个性质 \[f(1)=1\] \[f(p)=k+1\] \[f(p^c)=kc+1\] \[f(ab)=f(a)f(b),\gcd(a,b)=1\] 也就是说\(f\)是个积性函数,直接上\(Min\_2…
题目 求 \[\sum_{i=1}^n \sigma(i^k)\] 我们先来设一个函数\(f(i)=\sigma(i^k)\) 根据约数个数定理 \[f(p)=\sigma(p^k)=k+1\] \[f(p^c)=\sigma(p^{ck})=ck+1\] 这不就可以Min_25筛了吗 还是先求出来一个区间内的质数个数,一个质数的贡献显然是\(k+1\),之后上板子就好了 代码 #include<algorithm> #include<iostream> #include<c…
比赛的时候把公式扣出来了,,但是没有想到用筛法算公因子,,默默学习一下.. 题解:设n=p1^(c1)p2^{c2}...pm^{cm},n=p​1^​c​1*​​​​p​2​^c​2​​​​...p​m​^c​m​​​​,则d(n^k)=(k*c1+1)(k*c2+1)...(k*cm+1)d(n​k​​)=(kc​1​​+1)(kc​2​​+1)...(kc​m​​+1).然后由于l,r的值很大,但是l-r的范围还是可以接受的,所以我们用一个偏移数组 来存l<=n<=r数的d(n).然后就…
分析 首先,STO ywy OTZ,ywy TQL%%%! 说一下这道题用min_25筛怎么做. 容易发现,对于所有质数\(p\),都满足\(f(p)=4\),于是我们就可以直接通过\([1,x]\)内的质数的个数\(h(x)\)来求出\(g(x)=\sum_{i=1}^{x}f(i) \times [i \in prime]\)了,即\(g(x)\)可以等价地表示为\(g(x)=4 \times h(x)\).如何求\(h(x)\)是min_25筛的基本操作就不过多赘述了.而且进一步分析我们可…
题目大意 给你 \(n,k\),求 \[ S_k(n)=\sum_{i=1}^n\sigma_0(i^k) \] 对 \(2^{64}\) 取模. 题解 一个min_25筛模板题. 令 \(f(n)=\sigma_0(n^k)\),那么 \(S_k(n)=\sum_{i=1}^nf(i)\),而且 \[ \begin{cases} f(1)&=1\\ f(p)&=k+1\\ f(p^c)&=kc+1 \end{cases} \] 直接上min_25筛就好了. 时间复杂度:\(O(\…
DIVCNT2 - Counting Divisors (square) DIVCNT3 - Counting Divisors (cube) 杜教筛 [学习笔记]杜教筛 (其实不算是杜教筛,类似杜教筛的复杂度分析而已) 你要大力推式子: 把约数个数代换了 把2^质因子个数 代换了 构造出卷积,然后大于n^(2/3)还要搞出约数个数的式子和无完全平方数的个数的容斥... .... 然后恭喜你,spoj上过不去... bzoj能过: #include<bits/stdc++.h> #define…
Min_25 筛这个东西,完全理解花了我很长的时间,所以写点东西来记录一些自己的理解. 它能做什么 对于某个数论函数 \(f\),如果满足以下几个条件,那么它就可以用 Min_25 筛来快速求出这个函数的前缀和. 它是一个积性函数 对于一个质数 \(p\) ,\(f(p)\) 的表达式必须是一个项数比较小的多项式.即 \(\displaystyle f(p) = \sum a_ip^{b_i}\). 对于一个质数 \(p\) ,\(f(p^k)\) 的表达式必须可以由 \(f(p)\) 快速得到…
地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6069 题目: Counting Divisors Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1235    Accepted Submission(s): 433 Problem Description In mathem…
/** 题目:hdu6069 Counting Divisors 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6069 题意:求[l,r]内所有数的k次方的约数个数之和. 思路: 用(1+e1)*(1+e2)*...*(1+en)的公式计算约数个数. 素数筛出[l,r]内的素因子,然后直接计算结果.(一开始我用vector存起来,之后再处理,结果超时, 时间卡的很紧的时候,vector也会很占用时间.) */ #include<iostream>…
题目 vjudge URL:Counting Divisors (square) Let σ0(n)\sigma_0(n)σ0​(n) be the number of positive divisors of nnn. For example, σ0(1)=1\sigma_0(1) = 1σ0​(1)=1, σ0(2)=2\sigma_0(2) = 2σ0​(2)=2 and σ0(6)=4\sigma_0(6) = 4σ0​(6)=4. Let S2(n)=∑i=1nσ0(i2).S_2(n…
min_25筛 由 dalao min_25 发明的筛子,据说时间复杂度是极其优秀的 \(O(\frac {n^{\frac 3 4}} {\log n})\),常数还小. 1. 质数 \(k\) 次方前缀和(基础) 求 \(\sum_{p \leq n}p^k\) 我们考虑一个 \(\rm DP\) 的思路:设 \(g(n,j)\) 为: \[\sum_{i=1}^n[(\sum_{t=1}^j[p_t|i])=0] i^k \] 其实就是不大于 \(n\) 的,且不含有 \(p_1\) ~…
Counting Divisors Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1604    Accepted Submission(s): 592 Problem Description In mathematics, the function d(n) denotes the number of divisors of p…
题目大意 给你 \(n,m\),求 \[ \sum_{i=1}^n\sum_{x_1,x_2,\ldots,x_m=1}^i\operatorname{lcm}(\gcd(i,x_1),\gcd(i,x_2),\ldots,\gcd(i,x_m)) \] 对 \({10}^9+7\) 取模. \(nm\leq {10}^9\) 题解 先推一下式子: \[ ans=\sum_{i=1}^n\sum_{x_1,x_2,\ldots,x_m=1}^i\operatorname{lcm}(\gcd(i,…
原文链接https://www.cnblogs.com/zhouzhendong/p/Min-25.html 前置技能 埃氏筛法 整除分块(这里有提到) 本文概要 1. 问题模型 2. Min_25 筛 3. 模板题以及模板代码 问题模型 有一个积性函数 $f$ ,对于所有质数 $p$,$f(p)$ 是关于 $p$ 的多项式,$f(p^k)$ 非常容易计算(不一定是关于 p 的多项式). 求 $$\sum_{i=1}^{n} f(i)$$ $n\leq 10^{10}$ ${\rm Time\…
传送门 省选之前做数论题会不会有Debuff啊 这道题显然是要求\(1\)到\(x\)中所有数第二大质因子的大小之和,如果不存在第二大质因子就是\(0\) 线性筛似乎可以做,但是\(10^{11}\)的数据范围让人望而却步,而杜教筛需要对\(f(x)\)找到一个函数\(g(x)\)做狄利克雷卷积成为一个好算前缀和的函数\(h(x)\),相信各位是找不到这样一个函数的.所以考虑Min_25筛.但用Min_25筛还不知道要筛什么东西,故从Min_25筛最后的计算过程入手. Min_25筛的每一层递归…
题目描述 记\(sgcd(i,j)\)为\(i,j\)的次大公约数. 给你\(n\),求 \[ \sum_{i=1}^n\sum_{j=1}^n{sgcd(i,j)}^k \] 对\(2^{32}\)取模. \(n\leq {10}^9,k\leq 50\) 题解 记\(f(n)\)为\(n\)的次大因数 显然\(sgcd(i,j)=f(gcd(i,j))\) 先推一波式子. \[ \begin{align} &\sum_{i=1}^n\sum_{j=1}^n{sgcd(i,j)}^k\\ =&a…
题目描述 给你\(n\),求 \[ \prod_{i=1}^n{\sigma_0(i)}^{i+\mu(i)} \] 对\({10}^{12}+39\)取模. \(\sigma_0(i)\)表示约数个数. 题解 把式子拆成两部分: \[ \prod_{i=1}^n{\sigma_0(i)}^{i+\mu(i)}=\prod_{i=1}^n{\sigma_0(i)}^{i}\prod_{i=1}^n{\sigma_0(i)}^{\mu(i)} \] 先看前面这部分 \[ \begin{align}…
min_25筛 用来干啥? 考虑一个积性函数\(F(x)\),用来快速计算前缀和\[\sum_{i=1}^nF(i)\] 当然,这个积性函数要满足\(F(x),x\in Prime\)可以用多项式表示 同时,\(F(x^k),x\in Prime\)要能够快速计算答案 需要预处理的东西 先不考虑求前缀和的问题,考虑一个积性函数\(F(x)\) 求解\[\sum_{i=1}^n[i\in Prime]F(i)\] 直接求我也会懵逼的,还是找一个函数来算算,假设\(F(x)=x^k\) 那么,求解\…
min_25 筛是由 min_25 大佬使用后普遍推广的一种新型算法,这个算法能在 \(O({n^{3\over 4}\over log~ n})\) 的复杂度内解决所有的积性函数前缀和求解问题(个人感觉套上素数定理证明的复杂度的话应该要把下面的 log 改成 ln ,不过也差不多啦~) 其实 min_25 筛的入门TXC 大佬的 blog 已经写的非常棒了QVQ 所以搬博客的话鉴于博主太懒了就不干了...直接帮 TXC 大佬安利博客完事 这篇博客主要的目的是证明网上大多没有的 min_25 筛…
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1222.html 题意 给定 $a,b$, 求 $$\sum_{n=a}^b \sum_{i=1}^n \sum_{j=1}^i [{\rm lcm } (i,j) = n]$$ $$a,b\leq 10^{11}$$ $${\rm Time \ Limit } = 6s$$ 题解 本题做法很多. Min_25 筛 先差分一下,转化成求前缀和. 先把原题的统计无序数对转化成统计有序数对,最终 $an…
先定义几个符号: []:若方括号内为一个值,则向下取整,否则为布尔判断 集合P:素数集合. 题目分析: 题目是一个积性函数.做法之一是洲阁筛,也可以采用Min_25筛. 对于一个可以进行Min_25筛法的积性函数,它需要满足与洲阁筛相同的条件,即: 对于$f(p), p \in P$,它可以多项式表出.对于$f(p^k),p \in P$可以被快速计算出. 这道题中$f(p) = p-1$再对$2$进行修正即可. 对于1的情况我们单独考虑,现在我们对答案进行一些变换. $$\sum_{i=2}^…
[复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_{n|d}\mu(\frac{d}{n})g(d)\end{aligned}\] 实际上还有 \[\begin{aligned}g(n)&=\sum_{d|n}f(d)\\f(n)&=\sum_{d|n}\mu(\frac{n}{d})g(d)\end{aligned}\] 证明可以看看这里,…
题目链接 \(Description\) 给定\(n\),求\(1\sim n\)中的素数个数. \(2\leq n\leq10^{11}\). \(Solution\) Min_25筛.只需要求出\(g(n,|P|)\). 跑的好慢啊QAQ //5283ms 11.62M #include <cmath> #include <cstdio> #include <algorithm> typedef long long LL; const int N=317000<…
题目链接 Min_25筛见这里: https://www.cnblogs.com/cjyyb/p/9185093.html https://www.cnblogs.com/zhoushuyu/p/9187319.html https://www.cnblogs.com/SovietPower/p/10101811.html \(Description\) 给定\(n\),求积性函数\(f(p^c)=p\oplus c\)的前缀和.\(\oplus\)表示异或运算. \(n\leq 10^{10}…
Counting Divisors Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 3170    Accepted Submission(s): 1184 Problem Description In mathematics, the function d(n) denotes the number of divisors of…
Min_25 筛 yyb好神仙啊 干什么用的 可以在\(O(\frac{n^{\frac 34}}{\log n})\)的时间内求积性函数\(f(x)\)的前缀和. 别问我为什么是这个复杂度 要求\(f(p)\)是一个关于\(p\)的简单多项式,\(f(p^c)\)可以快速计算. 怎么做啊 首先我们需要对每个\(x=\lfloor\frac ni\rfloor\)求出\(\sum_{i=1}^x[i是质数]f(i)\). 怎么求呢? 先线性筛出\(\sqrt n\)范围内的质数,设\(P_j\)…
关于min_25筛的一些理解 如果想看如何筛个普通积性函数啥的,就别往下看了,下面没有的(QwQ). 下文中,所有的\(p\)都代表质数,\(P\)代表质数集合. 注意下文中定义的最小/最大质因子都是默认所有质因子本质不同. 即\(2*2*3*4*5*5\)的最小/次小质因子都是\(2\),最大/次大质因子都是\(5\). step1. 适用条件与思想 min_25筛用于求积性函数前缀和,即\(\sum_{i=1}^n f(i)\) . min_25筛相比于传统筛法来说(如莫比乌斯反演.杜教筛)…
题意 求 \([L, R]\) 之间的素数之和 . \(L≤10^{10},2×10^{10} \le R \le 10^{11}\) 题解 一个有点裸的 min_25筛 ? 现在我只会筛素数的前缀和 , 合数的过几天再学吧 . 首先推荐一波 yyb大佬博客 这个人很强 , 别那么fake就好啦 令 \(F(x) = x\) 显然此处 \(F(x)\) 是完全积性函数 . 我们需要求的就是 \[\displaystyle \sum_{i=1}^{n} [i \in Prime] F(i)\] .…
[51NOD 1847]奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数) 题面 51NOD \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 其中\(sgcd\)表示次大公约数. 题解 明摆着\(sgcd\)就是在\(gcd\)的基础上除掉\(gcd\)的最小因数. 所以直接枚举\(gcd\). \[\begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^n sgcd(i,j)^k\\ &=\sum_{i=1…
[LOJ#572]Misaka Network 与求和(莫比乌斯反演,杜教筛,min_25筛) 题面 LOJ \[ans=\sum_{i=1}^n\sum_{j=1}^n f(gcd(i,j))^k\] 其中\(f(x)\)表示\(x\)的次大质因子. 题解 这个数据范围不是杜教筛就是\(min\_25\)筛了吧... 看到次大质因子显然要\(min\_25\)筛了吧... 莫比乌斯反演的部分比较简单,懒得写过程了. \[ans=\sum_{T=1}^n [\frac{n}{T}]^2\sum_…