文章分类 -  算法基础

摘要:贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解。 贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择。 主体思路:排序+循环,局部最优解转化为最优解 多考虑中位数,平均值。 区间问题 例.AcWing9 阅读全文
posted @ 2022-01-02 22:13 泝涉江潭 阅读(83) 评论(0) 推荐(0)
摘要:本节动态规划(Dynamic Programming,DP),分析使用的是闫氏DP分析法。 DP分析法:从集合角度分析 \[ DP\left\{ \begin{matrix} 状态表示:维数从小到大考虑,若两维f(i,j) \left\{ \begin{matrix} 集合 \left\{ \beg 阅读全文
posted @ 2022-01-02 21:57 泝涉江潭 阅读(132) 评论(0) 推荐(0)
摘要:质数 定义:对于从2开始的的整数如果只包含1和本身这两个约数,就被称为质数/素数 质数的判定模板:根据定义(试除法)判断质数 O(sqrt(n)) bool is_prime(int x) { if (x < 2) return false; for (int i = 2; i <= x / i; 阅读全文
posted @ 2022-01-02 21:41 泝涉江潭 阅读(215) 评论(0) 推荐(0)
摘要:本节由于内容过多不再详细列出所有习题内容 深度优先搜索 DFS 数据结构 栈/stack 所用空间o(n) 第一次搜得到的点不具有“最短性” 每一个DFS都有一个搜索树(但存不需要存树,只要存当前,而且由于DFS是递归实现,系统会帮我们用栈储存),DFS俗称“暴搜”,关键是考虑顺序,想好“空位“个数 阅读全文
posted @ 2022-01-02 21:25 泝涉江潭 阅读(113) 评论(0) 推荐(0)
摘要:纲要:用数组与函数模拟这些结构(结构体数组写起来慢,new慢) 链表 单链表-->邻接表存储图与数、双链表-->优化问题 单链表 用数组模拟动态链表,new node太慢了。 单链表 模板 用数组模拟链表(快,new太慢) // head存储链表头,e[]存储节点的值,ne[]存储节点的next指针 阅读全文
posted @ 2022-01-02 20:50 泝涉江潭 阅读(104) 评论(0) 推荐(0)
摘要:前缀和与差分 建议数组以1开始,这样方便 例. AcWing99 激光炸弹 地图上有 $N$ 个目标,用整数 $X_{i}, Y_{i}$ 表示目标在地图上的位置,每个目标都有一个价值 $W_i$。 注意:不同目标可能在同一位置。 现在有一种新型的激光炸弹,可以摧毁一个包含 $R \times R$ 阅读全文
posted @ 2022-01-02 10:09 泝涉江潭 阅读(106) 评论(0) 推荐(0)
摘要:本节是高精度专题 大整数存储:以个位为第0位,将数字存于数组 本节高精度适用范围 A+B A-B A/a A*a 其中AB为大整数,a为普通数字 加法 vector<int> add(vector<int> &A, vector<int> &B) { if (A.size() < B.size()) 阅读全文
posted @ 2022-01-02 09:50 泝涉江潭 阅读(62) 评论(0) 推荐(0)
摘要:快速排序 引入视频 基本步骤:选择分界点、调整区间、递归处理左右两段 例.AcWing785 快速排序 给定你一个长度为 $n$ 的整数数列。 请你使用快速排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 $n$。 第二行包含 $n$ 个整数( 阅读全文
posted @ 2022-01-01 10:08 泝涉江潭 阅读(104) 评论(0) 推荐(1)