题意:设f(i)f(i)f(i)表示iii的不严格次大质因子(没有为000),求∑i=lrf(i)\sum_{i=l}^rf(i)∑i=lr​f(i)

l≤r≤1011l\leq r\leq10^{11}l≤r≤1011

这种和质因数有关的奇奇怪怪的函数的前缀和可以试试魔改min_25筛

S(n,j)=∑i=2n[minp(i)>pj]f(i)S(n,j)=\sum_{i=2}^n[minp(i)>p_j]f(i)S(n,j)=i=2∑n​[minp(i)>pj​]f(i)

枚举最小的质因子pkp_kpk​以及次数eee

如果pkp_kpk​不是次大质因子,直接递归到S(⌊npke⌋,k)S(\lfloor\frac{n}{p_k^e}\rfloor,k)S(⌊pke​n​⌋,k)

否则考虑pkp_kpk​的贡献

如果是严格次大,那么枚举最大的质因子

否则就是[e>1][e>1][e>1]

S(n,j)=∑k=j+1pk≤n∑e=1pke≤n(S(⌊npke⌋,k)+∑i=pk+1⌊npke⌋[i∈prime]+[e>1])S(n,j)=\sum_{k=j+1}^{p_k\leq\sqrt n}\sum_{e=1}^{p_k^e\leq n}(S(\lfloor\frac{n}{p_k^e}\rfloor,k)+\sum_{i=p_k+1}^{\lfloor\frac{n}{p_k^e}\rfloor}[i\in prime]+[e>1])S(n,j)=k=j+1∑pk​≤n​​e=1∑pke​≤n​(S(⌊pke​n​⌋,k)+i=pk​+1∑⌊pke​n​⌋​[i∈prime]+[e>1])

注意pk+1p_k+1pk​+1可能大于⌊npke⌋\lfloor\frac{n}{p_k^e}\rfloor⌊pke​n​⌋,要特判一下

然后用min_25的方法预处理出质数个数的前缀和即可

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <cmath>
#define MAXN 1000005
using namespace std;
const int N=1e6;
int np[MAXN],pl[MAXN],cnt;
void init()
{np[1]=1;for (int i=2;i<=N;i++){if (!np[i]) pl[++cnt]=i;for (int j=1,x;(x=i*pl[j])<=N;j++){np[x]=1;if (i%pl[j]==0) break;}}
}
typedef long long ll;
ll val[MAXN],n,m;
int key[MAXN],yek[MAXN],tot;
inline int getkey(ll x){return x<=m? key[x]:yek[n/x];}
ll g[MAXN];
ll S(ll n,int j)
{if ((ll)pl[j]*pl[j]>n) return 0;ll sum=0;for (int k=j+1;(ll)pl[k]*pl[k]<=n&&k<=cnt;k++)for (ll e=1,v=pl[k];v<=n;e++,v*=pl[k])sum+=S(n/v,k)+pl[k]*(max(0ll,g[getkey(n/v)]-k)+(e>1));return sum;
}
ll solve(ll N)
{m=sqrt(n=N);tot=0;for (ll l=1,r;l<=n;l=r+1){r=n/(n/l);val[++tot]=n/l;if (val[tot]<=m) key[val[tot]]=tot;else yek[n/val[tot]]=tot;}for (int i=1;i<=tot;i++) g[i]=val[i]-1;for (int j=1;j<=cnt;j++)for (int i=1;(ll)pl[j]*pl[j]<=val[i];i++)g[i]-=g[getkey(val[i]/pl[j])]-j+1;return S(n,0);
}
int main()
{init();ll l,r;cin>>l>>r;cout<<solve(r)-solve(l-1);return 0;
}

【UOJ188】 Sanrd【类min_25筛】相关推荐

  1. 【UOJ#188】Sanrd(min_25筛)

    [UOJ#188]Sanrd(min_25筛) 题面 UOJ 题解 今天菊开讲的题目.(千古神犇陈菊开,扑通扑通跪下来) 题目要求的就是所有数的次大质因子的和. 这个部分和\(min\_25\)筛中枚 ...

  2. uoj#188. 【UR #13】Sanrd(Min_25筛)

    题面 传送门 题解 这是一道语文题 不难看出,题目所求即为\(l\)到\(r\)中每个数的次大质因子 我们考虑\(Min\_25\)筛的过程,设 \[S(n,j)=\sum_{i=1}^nsec_p( ...

  3. [51NOD1847]奇怪的数学题(杜教筛+min_25筛+第二类斯特林数)

    f(x)f(x)f(x)表示xxx的次大约数,有f(x)=xx的最小质因数f(x)=\frac{x}{x的最小质因数}f(x)=x的最小质因数x​,那么 ∑i=1n∑j=1nsgcd(i,j)k=∑i ...

  4. Min_25 筛小结

    Min_25 筛这个东西,完全理解花了我很长的时间,所以写点东西来记录一些自己的理解. 它能做什么 对于某个数论函数 \(f\),如果满足以下几个条件,那么它就可以用 Min_25 筛来快速求出这个函 ...

  5. [复习]莫比乌斯反演,杜教筛,min_25筛

    [复习]莫比乌斯反演,杜教筛,min_25筛 莫比乌斯反演 做题的时候的常用形式: \[\begin{aligned}g(n)&=\sum_{n|d}f(d)\\f(n)&=\sum_ ...

  6. LOJ572. 「LibreOJ Round #11」Misaka Network 与求和 [莫比乌斯反演,杜教筛,min_25筛]

    传送门 思路 (以下令\(F(n)=f(n)^k\)) 首先肯定要莫比乌斯反演,那么可以推出: \[ ans=\sum_{T=1}^n \lfloor\frac n T\rfloor^2\sum_{d ...

  7. Min_25筛有关求解次小质因子

    #188. [UR #13]Sanrd 题意化简就是求次小质因子,这一步我们可以在Min_25筛的ans计算中得到, S(n, j)表示的是最小质因子大于等于primejprime_jprimej​的 ...

  8. LOJ.6053.简单的函数(Min_25筛)

    题目链接 Min_25筛见这里: https://www.cnblogs.com/cjyyb/p/9185093.html https://www.cnblogs.com/zhoushuyu/p/91 ...

  9. loj #6053 简单的函数 min_25筛

    \(\color{#0066ff}{ 题目描述 }\) 某一天,你发现了一个神奇的函数\(f(x)\),它满足很多神奇的性质: \(f(1)=1\) \(f(p^c)=p \oplus c\) (\( ...

最新文章

  1. 单片机如何从上电复位执行到main函数?
  2. 在NodeJS中操作文件常见的API
  3. PAT甲级1016 Phone Bills :[C++题解]字符串处理(复杂题)(C语言格式化读入、输出很便利!!!)
  4. 实战SSM_O2O商铺_41【前端展示】店铺列表页面Dao+Service+Controller层的实现
  5. cut、tee、split、xargs、bc命令
  6. wxWidgets:wxAcceleratorTable类用法
  7. MySQL技术内幕读书笔记(一)——Mysql体系结构和存储引擎
  8. Linux测量进程内存峰值,linux / unix进程的峰值内存使用情况
  9. 【 Date 对象 参考手册】
  10. Gartner发布2020年十大战略科技发展趋势
  11. final string 堆区 栈区 java_JVM内存初学 堆、栈、方法区
  12. solr mysql增量导入_急急急,在线等!solr4.10结合oracle增量导入数据问题!
  13. Trend Micro Password Manager 多个高危漏洞
  14. 在Git中更改文件名的大小写
  15. KnockoutJS 3.X API 第七章 其他技术(3) 延迟更新
  16. Android CallStack
  17. Excel如何快速提取单元格括号内数据
  18. (大五人格分析)开放型人格的优势和职业发展
  19. 关于windows server 2016服务器 exchange 2010 managment Shell 停止工作的问题(已解决)
  20. windows 系统错误码总结

热门文章

  1. c++ 对象起始地址 指针靠齐_你需要知道的各种指针运算
  2. python读取mysql以html形式输出_python实现处理mysql结果输出方式
  3. 3部世界顶级宇宙纪录片,献给对宇宙万物充满好奇的大人孩子~
  4. 老婆晚上不想睡?这个操作你要会!
  5. 每日一笑 | 在托运行李时,怎样才能不会因为超重被罚钱?
  6. Linux系统管理员的Bash指南,11条Bash实践经验!
  7. 近期资料分享汇总,还不快来看看你漏了哪份没拿?
  8. 入门 | 机器学习第一课:决策树学习概述与实现
  9. 还不知道这 11 个超酷的编程新工具你就 out 了!
  10. 重磅大礼!100本《机器学习》by周志华,免费送!