GESP5级总结

news/2025/3/9 12:06:05/文章来源:https://www.cnblogs.com/TobyL/p/18760509

目录
  • 大纲
  • 一.数学
    • 1.唯一分解定理
      • 例题:[GESP202309 五级] 因数分解
    • 2.素数筛
      • ·暴力筛
      • ·埃氏筛
      • ·欧拉筛
      • 总结:
    • 3.辗转相除法

大纲

一. 数学
二. 高精度
三. 单链表双链表循环链表
四. 二分查找/二分答案
五. 贪心算法
六. 分治算法(归并排序和快速排序)
七. 递归
八. 算法复杂度的估算(含多项式、指数、对数复杂度)
*粗体为常考内容

一.数学

  • 唯一分解定理
  • 素数表的埃氏筛法和线性筛法
  • 辗转相除法(也称欧几里得算法)

1.唯一分解定理

定理:何一个大于1的整数n都可以分解成若干个素因数的连乘积,如果不计各个素因数的顺序,那么这种分解是惟一的,即若\(n>1\),则有\(n=p1*p2*…pm\)。质因数分解是实现唯一分解定理的具体方法,而定理则为该方法的有效性奠定了基础。如6被分为23,12被分为34或62再分为32*2,发现质因数分解的结果是唯一的。

例题:[GESP202309 五级] 因数分解

模板:

#include <bits/stdc++.h>
#define int long long
using namespace std;signed main() {int n;cin >> n;bool flag = false;for (int i = 2; i * i <= n; i++) {if (n % i == 0) {int cnt = 0;while (n % i == 0) {n /= i;cnt++;}if (cnt == 1)cout << i;elsecout << i << "^" << cnt;if (n > 1)cout << " * ";}}if (n > 1)cout << n;return 0;
}

2.素数筛

顾名思义,就是找出一定数字范围内的质数,普通的暴力方法就是枚举该数的所有因子,但有些情况速度过慢,于是就要用埃氏筛法和线性筛法等更快的筛法。

·暴力筛

bool is_prime(int n) {if (n < 2)return false;for (int i = 2; i * i <= n; i++) {if (!(n % i))return false;}return true;
}

·埃氏筛

从 2 开始,将每个质数的倍数标记为合数,直到遍历完所有数。未被标记的数即为质数。

void is_prime(int n) {vector <bool> prime(n + 1, true);for (int i = 2; i * i <= n; i++) {if (prime[i]) {for (int j = i * i; j <= n; j += i) {prime[j] = false;}}}for (int i = 2; i <= n; i++) {if (prime[i]) {cout << i << endl;}}return ;
}

·欧拉筛

欧拉筛是一种高效的质数筛选算法,也被称为线性筛法。其核心思想是 每个合数只被其最小质因数标记一次,从而避免了重复标记,提高了筛选效率。

void sieveOfEuler(int n) {vector<int> prime;vector<bool> isprime(n + 1, true);for (int i = 2; i <= n; i++) {if (isprime[i]) {prime.push_back(i);}for (int prj : prime ) { //遍历prime数组if (i * prj > n)break;isprime[prj * i] = false;if (i % prj == 0)break;}}for (int pri : prime) {cout << pri << endl;}return ;
}

总结:

方法 时间复杂度 优点 缺点 适用场景
暴力筛法 $ O(n \sqrt{n}) $ 简单直观 效率低 小范围、学习用途
埃氏筛 $ O(n \log \log n) $ 高效、易于实现 重复标记、有一定冗余 中等范围
欧拉筛 $ O(n) $ 线性复杂度、无重复标记 实现复杂、需要额外空间 大规模

3.辗转相除法

设有\(a\)\(b(a>b)\) ,求a和b最大公约数。 令$a %\ b=r $ ,如果$ r=0 $,则b为a和b最大公约数,否则令 \(a=b\)\(b=r\) ,重复上述步骤。

int gcd(int a, int b) {if (b == 0) return a;        // 基线条件:当 b 为 0 时,GCD 为 a return gcd(b, a % b);        // 递归调用:GCD(a, b) = GCD(b, a % b)
}

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

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

相关文章

P3629 [APIO2010] 巡逻

P3629 [APIO2010] 巡逻 看题解大佬们都用数学推理求两遍直径的方法,然而萌新并不会这么高级的方式,只能大力分讨了。 思路 对于 \(k=1\) 的情况,加上一条边时,树上出现了一条环且长为 \(S\),环上的原路径都可以少走一遍,再算上新路径要走一遍。此时答案为 \(2 \times (n-…

python——常用函数map、lambda

lambda:英文含义是,希腊字母表第11个字母 https://baijiahao.baidu.com/s?id=1781168343754714555&wfr=spider&for=pc

全面的C#/.NET/.NET Core面试宝典(永久免费)

前言C#/.NET/.NET Core相关技术常见面试题汇总,不仅仅为了面试而学习,更多的是查漏补缺、扩充知识面和大家共同学习、携手进步。该知识库主要由自己平时学习和工作实践总结、网上优秀文章资料收集(这一部分一定会标明来源)和社区小伙伴提供三部分组成。 面试宝典获取方式因…

20241909 2024-2025-2《网络攻防实践》第2次作业

@目录1. 知识点梳理与总结1.1实验要求1.2知识点总结2. 实验过程2.1 实验环境2.2 详细实验过程2.2.1查询baidu.com2.2.2 查询某一好友的IP地址,地理位置2.2.3 使用nmap开源软件对靶机环境进行扫描,回答以下问题并给出操作命令。2.2.4 使用Nessus开源软件对靶机环境进行扫描,回…

dify跨域问题

在本地电脑上,通过vmware安装dify使用时,没有遇到这个问题。 部署dify之后,在添加模型的API-key的时候,一直添加不上,没有反应。打开控制台报错截图如下:报错信息 - Access to fetch at https://marketplace.dify.ai/api/v1/plugins/search/advanced from origin http://…

Program1

实验1 实验1代码 p1: #include<stdlib.h>int main() {printf(" o \n");printf("<H>\n");printf("I I\n");printf(" o \n");printf("<H>\n");printf("I I\n");system("pause");retur…

C#之BitConverter.ToInt16

byte[] bytes = {1,3 }; short s = BitConverter.ToInt16(bytes,0); Console.WriteLine(s);从低位到高位填充: 0000 0003 0000 0001 3*2^8+1=769;byte[] bytes ={0x21,0x31};short s = BitConverter.ToInt16(bytes,0);Console.WriteLine(s);从低位到高位填充: 0003 0001 0002…

大语言模型中的归一化技术:LayerNorm与RMSNorm的深入研究

在LLama等大规模Transformer架构的语言模型中,归一化模块是构建网络稳定性的关键组件。本文将系统分析归一化技术的必要性,并详细阐述为何原始Transformer架构中的LayerNorm在LLama模型中被RMSNorm所替代的技术原理。https://avoid.overfit.cn/post/224e11d8a7d84870b1a3d5e7…

nginx 403

其实大多数403错误,都主要是因为 nginx 没有网站资源目录的权限,所以为了安全起见,我们通常都不会将 nginx工作用户改成 root,而是去赋予网站资源目录权限 我们先去看下网站资源目录的权限都是777权限,这是因为我之前给它提权过。 咦不对啊,明明已经改成777权限了,怎么还…

UVA12244 Growing Strings

UVA12244 Growing Strings 题面 形式化题意 给定 \(N\) 个字符串 \(S_1 \dots S_N\),从中选出一些字符串首尾相接依次排成一个序列。在序列中,前面串是后面串的子串。 每组数据输出一行一个整数,表示最多可以选择的字符串个数。 思路 对于字符串匹配问题,第一时间想到 AC 自…

第四课 句法结构与依存分析

人类理解自然语言的方式有很多,但是绝大多数用的还是通过上下文来推断某些词的含义。现代自然语言处理也是基于这个方式来进行建模的 我们来看一个例子,如下可以知道,in,large是修饰crate的,look是修饰in the crate的,in the kitchen是修饰crate的,by the door也是修饰c…

3.9 android真机测试通过了

deepseek简直太厉害了,我昨天写的代码一直报错访问不了网络,然后我就跟deepseek描述我的错误 跟着它给的解决办法开放了防火墙端口,之后就可以通过了,成功的在真机上将信息提交到了数据库