分类: 算法训练

20 篇文章

thumbnail
2025.3.15 堆&贪心
因为堆是一种维护当前最大(最小)值的数据结构,所以它往往可以与贪心算法(采取当前局部最优解)放在一起使用。 0x00--【模板】堆 洛谷p3378 0x01--合并果子 洛谷p1090 一道经典的贪心题 0x02--排队接水 洛谷p1223 (贪心) map和multimap 按照索引的值来排序 0x03--[NOIP 2007 普及组] 纪念品分…
thumbnail
2025.3.14 前缀和 并查集
0x00--在你窗外闪耀的星星 简单的前缀和题。如果她的心思也像这么简单好猜就好了。 0x01--牛吃草 洛谷p1672 这道题可以用二分,可以用差分,数据量比较小,还可以用暴力。 暴力: 差分: 二分的方法和暴力差不多,只是判断函数里的==改成>=或<=,main函数里再进行二分条件判断,这里就不写了。 0x02--【模版】并查集 洛谷p3…
thumbnail
2025.3.13
0x00 砍树 洛谷p1873 简单的二分,注意M的最大值可以到2*10^9,用int 来存储sum可能会溢出,所以用long long 0x01--求区间和 简单的前缀和题,注意10^4 *10^5=10^9,因此前缀和数组可以用int 类型 int最大到2*10^9 0x02--最大加权矩形 洛谷p1719 看完题目第一反应是前缀和,但是这是一…
thumbnail
2025.3.12
0x0--租借教室 洛谷p1083 (差分&二分) 最开始用暴力,时间超时,只能拿到60分: 分析了一下超时的原因:时间复杂度是O(n*m) 当n m都是题目中的最大值10^6时,总的处理次数为10^12,时间限制1s,远大于一秒处理次数10^8。 因此可以考虑用差分的方法来判断第i个请求是否满足,时间复杂度仅为O(n+m),并且最后用一个…
thumbnail
2025.3.11 dfs bfs专题 (全AC)
0x00--连通水坑(dfs、bfs) 洛谷p1596 dfs: bfs: 0x01--选数 洛谷p1036 (dfs) 0x02-- 求细胞数量 洛谷p1451 (dfs) 0x03-- 奇怪的电梯 洛谷p1135 (bfs) 0x04-- 马的遍历 洛谷p1443 (bfs) 0x05--哈利波特的迷宫 洛谷p2199 (bfs)
thumbnail
leetcode刷题记录—-2025.2.23
0x00--生成杨辉三角前n行 0x01--仅返回杨辉三角第n行(滚动数组优化) 0x02--仅返回杨辉三角第n行(仅使用一个数组) 0x03--买股票最佳时机 0x04--只出现一次的数字
thumbnail
leetcode刷题记录—-2025.2.22
0x00 双指针删除递增数组中重复元素 0x01 双指针删除数组中指定元素 0x02 二分查找,如果存在则返回下标,不存在则返回应该插入下标 0x03 加一 0x04 合并两个有序数组(后置双指针) 0x05 有序数组转换为二叉搜索树 0x06