当前位置: 首页 > news >正文

数论学习之路

如果不太影响理解与运用的证明 或是我不会的证明 就都不计喽

关于数论分块我就不想写了感觉比较基础


线性筛

先来说线性筛

一篇推荐的博客

\(O(n)\) 预处理积性函数

常见用法:

  • \(f(1)=1\)
  • \(f(p)=...\) (一般是直接赋值)
  • \(f(p^k)=...\) (一般也是递推的样子)

然后处理出来 \(low_i\) 表示 \(i\) 中最小值因子的指数次幂

具体运算就可以套板子了

点击查看代码
void Euler(int n){s[1]=low[1]=isp[1]=1;//情况1for(int i=2;i<=n;i++){if(!isp[i])p[++cnt]=i,low[i]=i,s[i]=;//情况2for(int j=1;j<=cnt&&i*p[j]<=n;j++){isp[i*p[j]]=1;if(i%p[j]==0){low[i*p[j]]=low[i]*p[j],phi[i*p[j]]=phi[i]*p[j];if(low[i]==i){s[i*p[j]]=;//情况3}else{s[i*p[j]]=s[i/low[i]]*s[low[i]*p[j]];}break;}low[i*p[j]]=p[j],s[i*p[j]]=s[i]*s[p[j]];}}
}

具体题目的例子我就不放了因为后面很多代码中都有不同用法


Dirichlet 卷积

只要知道定义式就好啦

2025-10-12 08-51-27屏幕截图

杜教筛

\(O(n^\frac{2}{3})\) 的时间复杂度内求积性函数前缀和

关键式子:

2025-10-12 08-36-50屏幕截图

最后就是一个递归的形式,里面是整除分块

要使用线性筛预处理一部分,再用 unordered_map 做一下记忆化

写法用 \(phi\) 的前缀和举例

点击查看代码
int getphi(int n){if(n<=N)return sp[n];//线性筛预处理的项if(ansp[n])return ansp[n];//unordered_map记忆化int ans=n*(n+1)/2;//计算f卷gfor(int l=2,r;l<=n;l=r+1){//整除分块r=n/(n/l);ans-=(r-l+1)*getphi(n/l);//递归处理}return ansp[n]=ans;//记忆化
}

例题:

【模板】杜教筛 这个比较简单只是用来理解原理和实现过程

对与杜教筛的第一次练习 bjzx 25-1007 模拟赛 T4 ,自己写的博客,公式推导过程挺详细的,让我理解了具体实现及推导细节,也是从这开始自己学习数论

其他题目也会有这部分内容

http://www.gsyq.cn/news/19263.html

相关文章:

  • 详细介绍:C# WinForms的入门级画板实现
  • 【汇编】汇编语言运行过程
  • 电感式传感器 - 实践
  • 云栖2025 | 阿里云自研大素材平台 ODPS 重磅升级:全面支持AI计算和服务
  • CSP-J/S2024第二轮提高级题目知识构成分析报告
  • 浅层 CNN 的瓶颈:用 LeNet 实测不同数据集
  • 对抗训练提升产品搜索技术解析
  • Ubuntu Linux双网口主机实现在校园网环境下的网络共享
  • Ubuntu Linux双网卡实现在校园网环境下的网络共享
  • 台式机主板上的电池要更换啦
  • 微信小程序 app.js中onLaunch中方法执行完毕后再执行index首页数据请求
  • 轻量服务器Lighthouse + 1Panel 部署.NET 8 Web应用
  • 关于近期调研各类游戏开发引擎的一些感想
  • 终于在vim中用上了molokai的炫酷色彩配置了(゚∀゚)
  • 我是如何在Vim8.1中安装好的NERDTree插件的
  • P12012 [Ynoi April Fools Round 2025] 牢爱 题解
  • 10.11总结
  • CF691E Xor-sequences
  • 分析InfluxDB中读取时CPU飙升
  • 高二停课周记(信息学竞赛) Week1
  • 2025/10/11
  • 十年运维工程师总结
  • 运动控制教学——5分钟学会Dijkstra与A*搜索算法!(附仿真视频及代码) - 教程
  • CNN 发展历程
  • 实验报告5(链栈基本操作,数制转换,匹配算法,伴舞问题)
  • 企业推行OKR中层领导关注的10个关键问题及解决方案
  • P11229 [CSP-J 2024] 小木棍题解
  • 初识pytorch:数据标准化及数据增强的transforms
  • 前端实验(二)模板语法 - 实践
  • Num3:Prompt工程 - 指南