- 博客(10)
- 收藏
- 关注
原创 算法 1 - 7 搜索 BFS DFS
严格来说,搜索算法也算是一种暴力枚举策略,但是其算法特性决定了效率比直接的枚举所有答案要高,因为搜索可以跳过一些无效状态,降低问题规模。在算法竞赛中,如果选手无法找到一种高效求解的方法(比如贪心、递推、动态规划、公式推导等),使用搜索也可以解决一些规模较小的情况;而有的任务就是必须使用搜索来完成,因此这是相当重要的策略。从一个点一直往下搜,直到不能搜为止。首先明确每行只能有一个皇后,所以只需要用BFS枚举每行皇后所在的列数即可,并且要创建vis数组来记录之前这一行和对角线是否纯在其他皇后。
2024-02-27 18:30:09
591
原创 算法 2 - 1 前缀和、差分与离散化
算法引入: 前缀和和差分的主要应用场景是在需要频繁查询某个区间内元素和的问题中,可以通过预处理得到前缀和或差分数组,然后通过简单的计算即可得到结果,从而提高算法的效率。 离散化是将连续的数据划分为有限数量的离散值或区间的过程。P8218 【深进1.例1】求区间和 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)P1719 最大加权矩形 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) P2367 语文成绩 - 洛谷 | 计算
2024-02-13 13:52:16
688
1
原创 算法 1 - 6 二分查找与二分答案
算法引入:二分查找算法,也称为折半查找算法,是一种常见的查找算法。它的基本思想是将一个有序的数组或列表不断地分成两半,然后确定目标元素位于哪一半,从而缩小查找范围。二分查找算法的时间复杂度为O(log n)。实数二分模板:第一类:while (l < r) { int mid = (l + r) / 2; if (check(mid)) r = mid; // check()判断mid是否满足性质 else l = mid + 1;}第二类:wh
2024-02-03 21:54:20
712
1
原创 算法 1 - 5 贪心
有n个物体,第i个的重量为w(i),价值为v(i)。:有n个人,第i个人重量为w(i)。:先考虑当前最轻的人i,应该和能够与他一起坐船中的人中最重的人一起坐船,否则i一人坐一船。:数轴上有n个闭区间[ai,bi],选择尽量少的区间覆盖一条指定线段[s,t],ai<s。:给出n个物体,第i个物体重量为w(i)。:将bi从小到大排序,选择排序后的第一个区间,知道选完或不能选为止。:将ai从小到大排序,选择排序后的覆盖[s,t]最长的区间。:将bi从小到大排序,取第一个区间的最后一个点。
2024-01-30 20:16:29
482
1
原创 算法 1 - 2 排序
在刷题时我们经常会碰到排序问题,而排序的方法又有很多,其中;而。接下来我将介绍较重要的和最重要的c++的。STL中的sort()函数类似快速排序,但并非普通的快速排序,处理对普通的快速排序进行优化,它还结合了插入排序和堆排序,能根据不同情况自动选用合适的方法。
2024-01-16 21:49:11
683
1
原创 算法 1 - 1 快速幂
对于某些题目,要求计算a的b次方,若b的值非常大,将a依次乘b次代码就会超时。而快速幂算法便可以减少乘运算次数,从而快速计算乘方。
2024-01-11 16:33:52
461
1
原创 算法 1 - 1 高精度 |高精加 高精乘|
高精度算法引入 : 对于非常庞大的数字无法在计算机中正常存储,于是将这个数字拆开,拆成一位一位的,用一个数组去表示一个数字,这样这个数字就被称为是高精度数。高精度算法就是能处理高精度数并模拟加法,乘法等运算的算法。基本步骤: - 定义两个字符数组分别存储两个加数 - 字符数组倒序存入数组 - 模拟相加过程并处理进位 - 倒序输出结果代码实现: 洛谷练习题:A+B Problem(高精) - 洛谷 高精度乘法有两种常用形式,第一种是(高精度)*(低精度
2024-01-08 10:36:37
469
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅