【UR#13】【UOJ188】Sanrd(min_25筛)-程序员宅基地

技术标签: 筛法  

传送门


题解:

题目的实际含义是要求所有合数的次大质因子(不去重)之和。

考虑min_25的做法,设 S ( n , i ) S(n,i) S(n,i)表示所有 [ 1 , n ] [1,n] [1,n]的数,次大质因子大于等于 p i p_i pi的次大质因子之和。

考虑在剩下两个数的时候计算,显然就是看 [ p i , n p i t ] [p_i,\frac{n}{p_i^t}] [pi,pitn]里面有多少个质数,用min_25预处理一下就行了。


代码:

#include<bits/stdc++.h>
#define ll long long
#define re register
#define cs const

cs int N=1e6+7;

ll n;int lim,tot,p[N];
ll f1[N],f2[N];
inline void init(){
    
	lim=sqrt(n),tot=0;
	for(int re i=1;i<=lim;++i)f1[i]=i-1,f2[i]=n/i-1;
	for(int re p=2;p<=lim;++p)if(f1[p]!=f1[p-1]){
    
		::p[++tot]=p;ll t=f1[p-1];
		for(int re i=1,li=lim/p;i<=li;++i)f2[i]-=f2[i*p]-t;
		for(int re i=lim/p+1,li=std::min(n/p/p,(ll)lim);i<=li;++i)f2[i]-=f1[n/i/p]-t;
		if((ll)p*p<=lim)for(int re i=lim,li=p*p;i>=li;--i)f1[i]-=f1[i/p]-t;
	}
}

inline ll F(ll x){
    return x<=lim?f1[x]:f2[n/x];}

ll solve(ll n,int i){
    
	ll ans=0;
	for(int re j=i;j<=tot;++j){
    
		if((ll)p[j]*p[j]>n)break;
		for(ll now=p[j];now*p[j]<=n;now=now*p[j])
		ans+=solve(n/now,j+1)+p[j]*(F(n/now)-j+1);
	}
	return ans;
}

inline ll work(ll k){
    n=k;init();return solve(n,1);}

ll l,r;
signed main(){
    
	std::cin>>l>>r;
	std::cout<<work(r)-work(l-1)<<"\n";
	return 0;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zxyoi_dreamer/article/details/97933312

智能推荐

Ogre射线精确查询_ogre射线准确求交-程序员宅基地

文章浏览阅读736次。bool PickEntity(Ogre::RaySceneQuery* mRaySceneQuery, Ogre::Ray &ray, Ogre::Entity **result, Ogre::uint32 mask ,Ogre::Vector3 &hitpoint, bool excludeInVisible,const Ogre::String& excludeobject, Ogre::R_ogre射线准确求交

/usr/lib/x86_64-linux-gnu/libopencv_highgui.so:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引用...-程序员宅基地

文章浏览阅读489次。LIBRARIES+=boost_threadstdc++boost_regexhttps://github.com/rbgirshick/fast-rcnn/issues/52转载于:https://www.cnblogs.com/huhuai/p/10624740.html_/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `tiff

人大金仓数据库KingbaseES dbms_xmlquery包使用技巧--集合元素处理方式_数据库中的xml数据怎么改-程序员宅基地

文章浏览阅读842次,点赞22次,收藏19次。在目前的KingbaseES的使用过程中,我们会遇到数据库需要存储XML格式的数据,或者需要对查询的数据进行转换的问题,XML格式的数据类似于HTML格式数据,XML是一种扩展标记语言,最早于1998年被引入软件工业界,它不仅可以在WEB前端使用还可以应用于后端数据处理以及数据库存储等。_数据库中的xml数据怎么改

rtc-sfu_rtc sfu-程序员宅基地

文章浏览阅读581次。SFU 的全称是:Selective Forwarding Unit,是一种通过服务器来路由和转发 WebRTC 客户端音视频数据流的方法。如图所示,SFU 服务器最核心的特点是把自己 “伪装” 成了一个 WebRTC 的 Peer 客户端,WebRTC 的其他客户端其实并不知道自己通过 P2P 连接过去的是一台真实的客户端还是一台服务器,我们通常把这种连接称之为 P2S,即:Peer to Server。_rtc sfu

粒子群算法matlab代码(注释很详细哦,图像也美美哒,任意维度)_多种群并行粒子群算法matlab-程序员宅基地

文章浏览阅读4w次,点赞564次,收藏1.1k次。整个程序分为5个脚本pso1_mian.m:主程序,在此脚本内设置参数。pso1_im.m:画出函数图像(仅1维和2维)pso1_in.m:初始化pso1_in2.m:迭代寻优并输出结果另外还有一个目标函数,单独为一个脚本。推荐的测试函数—>这里先上运行结果图下面是源码1.pso1_mian.m这里的目标函数用函数句柄的形式调用(第15行)%% 粒子群算法%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% pso1_im_多种群并行粒子群算法matlab

使用 Python 的铅笔素描图像-程序员宅基地

文章浏览阅读1k次。图片在 Python 中表示为一组数字。所以我们可以进行各种矩阵操作来得到令人兴奋的结果。在本教程中,将向你展示如何只用几行代码创建“铅笔”草图图像。这个过程非常简单:灰度图像反转颜色模糊倒置图像将减淡混合应用于模糊和灰度图像我们可以为此选择任何我们想要的图像。将演示如何创建可以应用于任何图像、视频或实时流的对象。导入库OpenCV 和 Numpy 是项目所需的唯一库。我们使用以下两行代码导入它们..._mac怎样用python画素描版本的图

随便推点

时间序列入门学习-02 常用统计学概念及公式-程序员宅基地

文章浏览阅读77次。学习过程中涉及很多统计学公式,然而过去快10年,忘得一干二净,借此文复习一下叭~

CAD异常eNotOpenForWrite-程序员宅基地

文章浏览阅读6.6k次,点赞2次,收藏2次。之前在实际工程中查一个软件崩溃的问题,具体调试到的位置是AcDbDatabase::saveAs函数,应该是将数据库保存回CAD图纸时触发了CAD的"eNotOpenForWrite"报错随后软件崩溃。根据以往的使用情况来看,saveAs函数一般不会导致CAD的报错,且在具体测试后,确定只有该工程中一张特定图纸打开时,调用功能会导致异常发生。其他图纸操作一切正常,包括在打开其他图纸的情况下,对该特_enotopenforwrite

Android10系统中dialog.isShowing返回false问题-程序员宅基地

文章浏览阅读1.6k次。问题现象: 伪代码 使用流程 AcrtivityA– > DialogFragment– > ActivityB– > back to ActivityA { if ( getDialog().isShowing() ){ DialogFragment.dismiss()} } 发现Android9系统环境下 BaseJDDialogFragment调用getDialog().isShowing,返回为true,而Android10系..._android10系统中dialog.isshowing返回false问题

Snipaste 截图工具快捷键大全_snipaste截图快捷键-程序员宅基地

文章浏览阅读1.5k次。下载地址 f1 截图 c 复制_snipaste截图快捷键

敏感目录收集工具_cracer安全工具包密码-程序员宅基地

文章浏览阅读759次。敏感目录收集mysql管理接口后台目录上传目录phpinforobots.txt---->列出防爬行目录安装包安装页面---->index.php爬行Cracer渗透工具包6.0下载链接:https://pan.baidu.com/s/1ac-t-EMrl89aGJMm3pYS5w 密码:a8f11.御剑后台目录扫描    御剑是一款好用的网站后台扫描工具,图..._cracer安全工具包密码

2021-05-21 仓库温控系统(Winform) 05 获取类属性静态方法PropertyHelper_properties = properties.where(p => listcols.contai-程序员宅基地

文章浏览阅读7.1w次。public class PropertyHelper{ /// <summary> /// 返回指定类型的指定列名的属性数组 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="cols"></param> /// <returns></returns> public _properties = properties.where(p => listcols.contains(p.getcolname().tolower(