【数学1】基础数学问题 知识点总结

news/2025/2/12 9:05:43/文章来源:https://www.cnblogs.com/Gusare/p/18710841

前言

本篇文章是luogu官方题单【数学1】基础数学问题 的相关知识点个人总结

埃氏筛 & 欧拉筛 (基础)

虽然理论上欧拉筛比埃氏筛快,但是因为埃氏筛有cache,实际运行比欧拉筛要快
目前本人只见过欧拉筛模版题会卡这个(乐),但其实埃氏筛稍微优化一下常数甚至比欧拉筛跑的还快
埃氏筛完全够用

  • 埃氏筛 \(O(nloglogn)\)
//不用vector<ll>记录质数
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
int main(){ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n;vector<bool> not_prime(n+1,false);not_prime[1]=true;for(ll i=2;i*i<=n;i++){for(ll j=i*i;j<=n;j+=i){not_prime[j]=true;}}return 0;
}
//记录小于等于n的质数
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,q,k;
int main(){ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n>>q;vector<bool> not_prime(n+1,false);vector<ll> vec;not_prime[1]=true;for(ll i=2;i<=n;i++){if(!not_prime[i]){vec.push_back(i);for(ll j=i*i;j<=n;j+=i){not_prime[j]=true;}}}return 0;
}

欧拉筛 \(O(n)\)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,q,k;
int main(){ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cin>>n>>q;vector<bool> vis(n+1,true);vector<ll> vec;for(ll i=2;i<=n;i++){if(vis[i]){vec.push_back(i);}for(ll j=0;i*vec[j]<=n;j++){vis[vec[j]*i]=false;if(i%vec[j]==0){break;}}}return 0;
}

质因数 (很多题都用到了)

对于合数 \(x\),最大质因子不超过$ \sqrt x $
复杂度压到根号的原理

最大公因数 & 最小公倍数

  • 最大公因数gcd
ll gcd(ll x,ll y){ return (y==0?x:gcd(y,x%y)); }
  • 最小公倍数lcm

$ lcm(x,y)=\frac{x \cdot y}{gcd(x,y)}$

  • 推导公式

$ gcd(x,y)=z \rightarrow gcd(x/z,y/z)=1 $

$ gcd(x,y)=\frac{x \cdot y}{lcm(x,y)}$

排列组合

$ C(n,m)=C(n-1,m-1)+C(n-1,m) $

$ C(n,m)=\frac{n!}{m!(n-m)!} $

欧拉函数(P3601签到题)

  1. 标准分解式:x的质因数从小到大幂之积
    $ x=p_1^{k_1} p_2^{k_2} ... p_n^{k_n} $

  2. 欧拉函数:小于等于x的正整数中与x互质的数的个数
    $ \phi(x)=\prod_{i=1}^n (p_i-1) \cdot p_{k_i-1} $

对于欧拉函数有个很巧妙的求法
因为 \(x\) 中本身就含有 \(p_i^{k_i}\)
先令 \(\phi(x)=x\)
找到 \(x\) 的质因数 \(p_i\)
\(\phi(x)\) 直接除 \(p_i\) 再乘 \(p_i-1\) 即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/882428.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5. Docker 本地镜像发布到阿里云

5. Docker 本地镜像发布到阿里云 @目录5. Docker 本地镜像发布到阿里云1. 本地镜像发布到阿里云流程最后:1. 本地镜像发布到阿里云流程镜像的生成方法: 基于当前容器创建一个新的镜像,新功能增强 docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]]OPTIONS说明: -a :提交的…

清华博士后的DeepSeek使用手册,104页,真的是太厉害了!(免费领取源文件)

《DeepSeek从入门到精通2025》是由清华大学元宇宙文化实验室的余梦珑博士后及其团队撰写。文档的核心内容围绕DeepSeek的技术特点、应用场景、使用方法以及如何通过提示语设计提升AI使用效率等方面展开,帮助用户从入门到精通DeepSeek的使用。 以前我看了很多教程,都感觉特别花…

【一文详解】企业不可错过的一款内外网文件交换系统

一、内外网文件交换系统对企业的意义 内外网文件交换系统对于企业的价值和意义非常重要,尤其在当前数字化转型和信息化管理日益推进的背景下。以下是其主要价值和意义: 1、提升工作效率 内外网文件交换系统能够高效地处理跨部门、跨地域的文件传输需求,减少了传统方式中人工…

VMware NSX Advanced Load Balancer (NSX ALB) 30.1.2 - 多云负载均衡平台

VMware NSX Advanced Load Balancer (NSX ALB) 30.1.2 - 多云负载均衡平台VMware NSX Advanced Load Balancer (NSX ALB) 30.1.2 - 多云负载均衡平台 应用交付:多云负载均衡、Web 应用防火墙和容器 Ingress 服务 请访问原文链接:https://sysin.org/blog/vmware-nsx-alb-30/ 查…

Symantec Endpoint Protection 14.3 RU10 v14.3.12154.10000 下载

Symantec Endpoint Protection 14.3 RU10 v14.3.12154.10000 下载Symantec Endpoint Protection 14.3 RU10 v14.3.12154.10000 下载 Broadcom | SEP | SEPM | 简体中文版 | 繁体中文版 | 英文版 请访问原文链接:https://sysin.org/blog/sep-14/ 查看最新版。原创作品,转载请保…

动态编译一个新的 NativeApi 类

要动态编译一个新的 NativeApi 类,可以按照以下步骤进行:创建一个新的 NativeApi 类。 在 NativeApi 类中定义所需的方法和属性。 在 MainPage 中实例化并使用新的 NativeApi 类。using MauiPlus; using System.Reflection.Emit; using System.Reflection;namespace MauiPlus…

2025年的10个营销关键词

在瞬息万变的营销领域,把握趋势是成功的关键。本文总结了 2025 年的 10 个营销关键词,帮助你在 2025 年的营销战场上脱颖而出。 关键词一:需求细分 产品是营销的前提,产品的价值和人群越精准越细分,越容易爆。不要再喊大而泛的口号。 比如,母婴品牌世喜设计了一款“防胀气…

2025 开工大吉:明确绩效目标,合理安排计划

随着春节假期的结束,我们迎来了新的一年,也迎来了充满希望与挑战的开工日。在这个全新的起点上,“开工大吉”不仅是一句美好的祝愿,更是对我们每一位员工工作态度与效率的期许。为了在新的一年里实现更大的突破与发展,我们需要有一个明确的目标导向和高效的工作计划。在这…

容器附加存储CAS之OpenEBS快速入门

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.CAS之OpenEBS存储机制概述1.什么是CAS2.什么是OpenEBS3.OpenEBS数据引擎4.NDM(Node Disk Manager)5.部署OpenEBS的基本流程二.部署OpenEBS 一.CAS之OpenEBS存储机制概述 1.什么是CAS Kubernetes的卷…

【CodeForces训练记录】Codeforces Round 1004 (Div. 2)

训练情况赛后反思 这场太神奇了,都在和出题人对脑电波,全是智慧题 A题 我们考虑进位的情况,例如 9999 之类的,我们发现进位对答案的影响只有 \(x - 9k + 1 = y\),判断 \(k\) 是否存在非负整数解即可点击查看代码 #include <bits/stdc++.h> // #define int long long…

短信验证码爆破

漏洞原理 短信验证码验证时间和次数无限制,存在爆破可能 短信验证码有效期:5~10min,验证码位数4位或6位,纯数字 破解方式:使用枚举逐个尝试 使用BP爆破短信验证码可以先用已有手机号确认验证码位数2.发送验证码后将验证码输入,然后登陆抓包后续和爆破操作一致如果字典太大…

【洛谷P1955】程序自动分析[NOI2015]

今天开始学习并查集 什么是并查集呢?顾名思义,就是动态维护一个方便进行合并和查找的集合 我们采用的是树状结构 也就是说,对于一开始的每个元素 它的爸爸是它自己 然后在输入两个元素的从属关系的时候,通过路径压缩,把它的爸爸直接连到根节点 因为我们只关心这个元素在这…