考ACM需要的知识(转)

2023-11-06

(转自: http://www.ithao123.com/topic/10002.html)

对ACM竞赛的算法大概分了一下类,分成了数学、数据结构和算法三大块。

  对ACM竞赛的算法大概分了一下类,分成了数学、数据结构和算法三大块。

一 数学(Mathematics)

1 离散数学(Discrete Mathematics)

1.1 图论(Graph Theory)
图的遍历(Graph Traversal): DFS, BFS
最小生成树(Minimum Spanning Tree): Prim, Kruskal
最短路径(Shortest Path): Dijkstra, Floyd
传递闭包(Transitive Closure)
关节点(Articulation Point - UndiGraph)
拓扑排序(Topological Sort - AOV-Network)
关键路径(Critical Path - AOE-Network)
回路问题: 欧拉路(Euler Path), 汉密尔顿回路(Hamilton Tour)
差分约束(Difference Constraints): Bellman-Ford
二部图匹配(Bipartite Matching)
网络流(Network Flow)
...

1.2 组合数学(Combinatorics)

2 数论(Number Theory)
2.1 素数: GCD, LCM...
2.2 同余

3 计算几何(Computational Geometry)
线段相交, 多边形面积, 内点外点的判断, 凸包(Convex Hull), 重心(Bary Center)...

4 线性代数
矩阵(Matrix), 线性方程组(Linear Equations)...

5 概率论

6 初等数学与解析几何

7 高等数学
点积(Dot Product), 差积(Cross Product), 积分(Integral), 微分(Differential)...

二 数据结构(Data Structure)

1 线性结构
线性表(Linear List)
栈(Stack), 队列(Queue)
数组(Array), 串(String), 广义表(General List)

2 非线性结构
树(Tree)
堆(Heap)
图(Graph)

3 排序

3.1 插入排序
直接插入排序(Insert Sort) O(n^2)
折半插入排序(Binary Insert Sort)
希尔排序(Shell Sort)

3.2 交换排序
冒泡排序(Bubble Sort) O(n^2)
快速排序(Quick Sort)?? O(nlogn)

3.3 选择排序
直接选择排序(Select Sort) O(n^2)
锦标赛排序(Tournament Sort) O(nlogn)
堆排序(Heap Sort) O(nlogn)

3.4 归并排序(Merge Sort) O(nlogn)

3.5 基数排序(Radix Sort) O(d(n+radix))

4 查找

4.1 二分(Binary Search)

4.2 树型
二叉搜索树(Binary Search Tree)
平衡搜索树(AVL Tree)
并查集(Union-Find Set)

4.3 哈希(Hashing)

三 算法(Algorithm)

1 模拟算法

2 搜索算法
2.1 枚举搜索(Enumeration)
2.2 深度优先(Depth First Search)
2.3 广度优先(Breadth First Search)
2.4 启发式搜索(Heuristic Search)

3 以“相似或相同子问题”为核心的算法
3.1 递推
3.2 递归(Recursion)
3.3 贪心法(Greedy)
3.4 动态规划(Dynamic Programming)

转载于:https://www.cnblogs.com/zxsoft/archive/2007/10/29/940877.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

考ACM需要的知识(转) 的相关文章

  • Mysql 数据库

    数据库基础 1 什么是数据库 用来存储数据 数据库可在硬盘及内存中存储数据 数据库与文件存储数据的区别 数据库本质也是通过文件来存储数据 数据库的概念就是系统的管理存储数据的文件 数据库介绍 本质就是存储数据的C S架构的socket套接字
  • 《Linux From Scratch》第三部分:构建LFS系统 第六章:安装基本的系统软件- 6.29. Coreutils-8.23...

    Coreutils 软件包包含用于显示和设置基本系统特性的工具 大概编译时间 2 5 SBU 需要磁盘空间 193 MB 6 29 1 安装 Coreutils POSIX 要求 Coreutils 中的程序即使在多字节语言环境也能正确识别
  • LeetCode83: 删除排序链表中的重复元素

    给定一个已排序的链表的头 head 删除所有重复的元素 使每个元素只出现一次 返回 已排序的链表 示例 1 输入 head 1 1 2 输出 1 2 示例 2 输入 head 1 1 2 3 3 输出 1 2 3 提示 链表中节点数目在范围
  • 数据结构之链表与线性表

    数据结构之链表与线性表 线性表 顺序线性表 顺序表 顺序线性表 使用数组实现 一组地址连续的存储单元 数组大小有两种方式指定 一是静态分配 二是动态扩展 优点 随机访问特性 查找O 1 时间 存储密度高 逻辑上相邻的元素 物理上也相邻 缺点
  • 数据结构----链式栈

    目录 前言 链式栈 操作方式 1 存储结构 2 初始化 3 创建节点 4 判断是否满栈 5 判断是否空栈 6 入栈 7 出栈 8 获取栈顶元素 9 遍历栈 10 清空栈 完整代码 前言 前面我们学习过了数组栈的相关方法 链接 线性表 栈 栈
  • 数据结构与算法学习总结(六)——字符串的模式匹配算法

    基本概念 字符串是一种特殊的线性表 即元素都是 字符 的线性表 字符是组成字符串的基本单位 字符的取值依赖于字符集 例如二进制的字符集为0 1 则取值只能为 0 1 再比如英语语言 则包括26个字母外加标点符号 例如 abcde 就是一个字
  • 如何根据链表节点数据大小对链表节点进行排序

    对链表排序有两种方法 1 比较了两个节点的大小后 对指针进行改变 从而交换节点的顺序 2 比较了两个节点的大小后 只交换数据域 而不改变指针 从而交换节点的顺序 第二种办法比较简单 本文主要对第二种方法进行讲解 链表节点排序算法 采用 冒泡
  • 『Python基础-15』递归函数 Recursion Function

    什么是递归函数 一种计算过程 如果其中每一步都要用到前一步或前几步的结果 称为递归的 用递归过程定义的函数 称为递归函数 例如连加 连乘及阶乘等 凡是递归的函数 都是可计算的 即能行的 递归就是一个函数在它的函数体内调用它自身 编程语言中的
  • 数据结构之图的两种遍历实现(C语言版)

    上一期文章分享完了图的两种遍历方式 也是两种很重要的算法 DFS和BFS 这两种算法的应用和重要性我就不多说了 内行的人懂的都懂 今天这文章重要就是来上机实现这两种算法 又由于这两种算法都可以由邻接矩阵和邻接表来表示 博主分享的代码都是上机
  • 算法系列15天速成——第八天 线性表【下】

    一 线性表的简单回顾 上一篇跟大家聊过 线性表 顺序存储 通过实验 大家也知道 如果我每次向 顺序表的头部插入元素 都会引起痉挛 效率比较低下 第二点我们用顺序存储时 容 易受到长度的限制 反之就会造成空间资源的浪费 二 链表 对于顺序表存
  • 以太坊系列之十五: 以太坊数据库

    以太坊数据库中都存了什么 以太坊使用的数据库是一个NOSQL数据库 是谷歌提供的开源数据leveldb 这里尝试通过分析以太坊数据库存储了什么来分析以太坊可能为我们提供哪些关于区块链的API 存储内容 NOSQL是一个key value数据
  • 字符串09--表示数值的字符串

    字符串09 表示数值的字符串 jz53 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 请实现一个函数用来判断字符串是否表示数值 包括整数和小数 例如 字符串 100 5e2 123 3 1416 和 1E 16 都表示数值
  • 链表面试题(一):反转链表的算法实现

    关于链表的考察 链表是面试里面经常涉及到的考点 因为链表的结构相比于Hashmap Hashtable Concurrenthashmap或者图等数据结构简单许多 对于后者更多面试的侧重点在于其底层实现 比如Hashmap中Entry
  • 图 - Java实现无向带权图的邻接矩阵表示法

    图 Java实现无向带权图的邻接矩阵表示法 1 图 1 1 图的介绍 图 Graph 是一种复杂的非线性表结构 图中的元素我们就叫做顶点 vertex 图中的一个顶点可以与任意其他顶点建立连接关系 我们把这种建立的关系叫做边 edge 跟顶
  • 堆栈01--用两个栈实现队列

    堆栈01 用两个栈实现队列 jz05 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 用两个栈来实现一个队列 完成队列的Push和Pop操作 队列中的元素为int类型 测试用例 队列先进先出 输入 1 2 输出 1 2 解析
  • 用指针访问一维数组

    文章目录 顺序查找 数组方式实现 指针实现方式 对一位数组元素的访问有三种方式 指针变量的关系运算 引例 数组实现方式 主函数 指针实现方式 主函数 一维数组作为函数的参数 实际应用 顺序查找 要求用指针实现 在整数集合r中顺序查找与给定值
  • 数据结构与算法-列表(双向链表)设计及其排序算法

    0 概述 本文主要涵盖列表 双向链表 的设计及其排序算法的总结 列表是一种典型的动态存储结构 其中的数据 分散为一系列称作节点 node 的单位 节点之间通过指针相互索引和访问 为了引入新节点或删除原有节点 只需在局部调整少量相关节点之间的
  • 数理统计知识整理——回归分析与方差分析

    题记 时值我的北科研究生第一年下 选学 统计优化 课程 备考促学 成此笔记 以谨记 1 线性回归 1 1 原理分析 要研究最大积雪深度x与灌溉面积y之间的关系 测试得到近10年的数据如下表 使用线性回归的方法可以估计x与y之间的线性关系 线
  • 【数据结构入门精讲 | 第二篇】一文讲清算法复杂度

    上篇文章中我们引入了算法 数据结构 数据类型等概念 而要想衡量一个算法与数据结构是否为优质的 就需要一个衡量标准 这个衡量标准也是在我们实现一个好的算法时要遵循的原则 目录 基本概念 渐进性态 渐进性态数学表征 算法复杂度的运算 顺序搜索算
  • 最大流-Dinic算法,原理详解,四大优化,详细代码

    文章目录 零 前言 一 概念回顾 可略过 1 1流网络 1 2流 1 3最大流 1 4残留网络 1 5增广路

随机推荐

  • Chrome谷歌浏览器如何截取整个网页长图?

    PC截取局部或整个网页长图 操作步骤 1 浏览器打开需要截图的网页 2 进入调试模式 Windows系统 按F12 苹果IOS系统 按Command Option I 3 打开命令窗口 windows系统 按ctrl shift p 苹果I
  • 云服务器是干什么的

    云服务器的用途 1 放网站 云服务器和vps 独立服务器等一样 是网站空间的一种 因此 云服务器可以分割出虚拟主机 放置和运行网站 并且云服务器由于是建立在云计算基础上 比传统虚拟主机运行更为稳定 速度更快 性价比也更高 2 放应用 不管是
  • javascript 继承(extend)

  • 无法连接服务器ORacle数据库(可以Ping通)

    今天遇到一个怪事 我本机当服务器 开启了oracle的服务 发现其他人无法连接我的数据库 但是能ping通 1 检查端口是否能连接上 测试机 cmd gt telnet 10 0 0 163 1521 提示没有telnet这个命令 解决方法
  • 折半查找(二分查找)

    1 int Binary Search SeqList L int key 在有序表L中查找关键字为key的元素 若存在则返回其位置 不存在则返回 1 int low 0 high L Tablelen 1 mid while low lt
  • postgresql常用命令

    连接数据库 默认的用户和数据库是postgres psql U user d dbname 切换数据库 相当于mysql的use dbname c dbname 列举数据库 相当于mysql的show databases l 列举表 相当于
  • 三、PowerShell-使用帮助系统

    三 PowerShell 使用帮助系统 文章目录 三 PowerShell 使用帮助系统 1 帮助系统使用场景 2 更新帮助系统 3 查看帮助 4 使用帮助系统查找命令 5 帮助详解 1 参数集和通用参数 2 可选和必选参数 3 位置参数
  • springboot集成logback配置文件,配置日志

    目录 logback简介 为什么使用logback 开始使用 1 导入依赖 2 在项目的resources目录下新建一个logback xml文件 3 填入配置 4 项目启动 logback简介 Logback是由log4j创始人设计的又一
  • 人生中第一次向开源项目提交PR记录

    git了解很久了 但是就是没有向大一点的项目提交过pr 都是自己瞎折腾 记录一下开源项目提交PR过程 省略的过程可以参考 https www runoob com git git tutorial html 这个里面包括安装 使用 介绍基本
  • Java常见面试题

    Java面试题 java基础 spring springMVC mybatis mybatisplus springboot springcloudAlibaba redis mongodb mysql rabbitmq kafka doc
  • Java循环依赖使用@Lazy(懒惰的)注解解决

    Lazy Autowired private TaskService taskService Lazy 懒加载注解的概念 SpringIoC容器会在启动的时候实例化所有单实例 bean 如果我们想要实现 Spring 在启动的时候延迟加载
  • vue2转vue3笔记

    定义 vue3中不再使用data函数 而是采用ref reactive来定义响应式的数据 ref用来存放基本数据 reactive用来存放复杂的数据 注意这两种参数的值都不能直接使用 而是使用xxx value才能对其进行复制 而且reac
  • yaml配置对象map

    yaml配置如下 objectConfig object map 1 name 对象一 desc 这是第一个对象 url https abc abc abc 2 name 对象二 desc 这是第二个对象 url https abc abc
  • 基于沙猫群优化算法的函数寻优算法

    文章目录 一 理论基础 1 沙猫群优化算法 1 初始化种群 2 搜索猎物 探索 3 攻击猎物 开发 4 探索和开发 2 SCSO算法伪代码 二 仿真实验与结果分析 三 参考文献 一 理论基础 1 沙猫群优化算法 文献 1 提出了一种新的元启
  • 【Apifox】国产测试工具雄起

    在开发过程中 我们总是避免不了进行接口的测试 而相比手动敲测试代码 使用测试工具进行测试更为便捷 高效 今天发现了一个非常好用的接口测试工具Apifox 相比于Postman 他还拥有一个非常nb的功能 在接口的测试完成后 它可以一键生成接
  • Scripting.FileSystemObject控件的用法

    文件系统对象FSO的英文全称是File System Object 这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法 通过采用object method这种在面向对象编程中广泛使用的语法 将一系列操作文件和文件夹的动作通过调
  • Cadence orcad 原理图导出带书签目录的办法

    Cadence orcad 导出pdf 方便软件工程师或者其他人员查看 但是Cadence自带的导出pdf的办法不能同时导出书签目录 不利于查看 这片文章就是介绍怎么使用Cadence orcad 原理图导出带书签目录的pdf 这里以cad
  • 使用umr读取AMDGPU VRAM

    使用umr读取AMDGPU VRAM 造case 使用UMR读取内存 使用devmem2验证读取 huge page 造case gdb args kfdtest GNU gdb Ubuntu 9 2 0ubuntu1 20 04 1 9
  • 自动发送邮件(第一次做勿喷)

    import smtplib from email message import EmailMessage email EmailMessage Creating a object for EmailMessage email from x
  • 考ACM需要的知识(转)

    转自 http www ithao123 com topic 10002 html 对ACM竞赛的算法大概分了一下类 分成了数学 数据结构和算法三大块 对ACM竞赛的算法大概分了一下类 分成了数学 数据结构和算法三大块 一 数学 Mathe