上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 双端队列 双端队列是一种具有队列和栈性质的数据结构,它能在两端进行插入和删除,而且也只能在两端插入和删除。 STL 中的双端队列可以用 deque,头文件为 <deque>,它的用法如下: dq[i] 返回队列中下标为 i 的元素 dq.front() 返回队头 dq.back() 返回队尾 dq. 阅读全文
posted @ 2024-02-06 09:37 RonChen 阅读(472) 评论(0) 推荐(0)
摘要: 堆是一种树形结构,树的根是堆顶,堆顶始终保持为所有元素的最优值。有大根堆和小根堆,大根堆的根节点是最大值,小根堆的根节点是最小值。堆一般用二叉树实现,称为二叉堆。 堆的存储方式 堆的操作 empty 返回堆是否为空 top 直接返回根节点的值,时间复杂度 \(O(1)\) push 将新元素添加在数 阅读全文
posted @ 2024-02-03 19:58 RonChen 阅读(285) 评论(0) 推荐(0)
摘要: 给定一张图,边上有边权(无权图可以用 BFS 求最短路),定义一条路径的长度为这条路径上经过的边的边权之和,两点间的最短路即为经过的边的边权之和最小的路径。 多源(全源):要对每一个点作为起点的情况,都做最短路,要求出任意两个点之间的最短路。 单源:固定起点,只求这个起点到其他点的最短路。 最短路是 阅读全文
posted @ 2023-12-23 07:14 RonChen 阅读(425) 评论(0) 推荐(0)
摘要: 进制 12 个物品被称为 1 打,12 打被称为 1 罗,12 罗被称为 1 格。请问: 15 个是几打几个? 6775 个是几格几罗几打? 2 打 3 个是多少个? 1 格 9 罗 8 打 10 个是多少个? 以上的“几”均是不小于 0 且小于 12 的整数 分析 根据 15÷12=1···3,1 阅读全文
posted @ 2023-12-02 11:50 RonChen 阅读(591) 评论(0) 推荐(0)
摘要: 区间 DP 区间 DP 是可以由小区间的结果往两边扩展一位得到大区间的结果,或者由两个小区间的结果可以拼出大区间的结果的一类 DP 问题 往往设 \(dp[i][j]\) 表示处理完 \([i,j]\) 区间得到的答案,按长度从小到大转移 因此一般是先写一层循环从小到大枚举长度 \(len\),再写 阅读全文
posted @ 2023-11-10 17:05 RonChen 阅读(698) 评论(0) 推荐(0)
摘要: 什么是贪心 在每次决策的时候都采取当前意义下的最优策略,一般贪心问题的难点在于最优策略的选择。 例题:有 \(n\) 项工作,每项工作从 \(s_i\) 时间开始,\(t_i\) 时间结束,对于每项工作你都可以选择是否要参加,若参加则必须全程参与。那么在不能同时参与多个工作的情况下,最多可以参加几个 阅读全文
posted @ 2023-11-07 16:03 RonChen 阅读(141) 评论(0) 推荐(0)
摘要: 动态规划 方案数问题 例题:P1002 [NOIP2002 普及组] 过河卒 参考代码 #include <cstdio> typedef long long LL; const int N = 25; int dx[8] = {-2, -2, -1, -1, 1, 1, 2, 2}; int dy 阅读全文
posted @ 2023-10-04 15:31 RonChen 阅读(200) 评论(0) 推荐(0)
摘要: #include <cstdio> #include <algorithm> using namespace std; const int N = 10005; const int M = 1005; const int INF = 1e9; int up[N], down[N], low[N], 阅读全文
posted @ 2023-09-28 19:34 RonChen 阅读(40) 评论(0) 推荐(0)
摘要: #include <cstdio> #include <algorithm> using namespace std; const int N = 105; const int A = 25005; int a[N]; bool dp[A]; int main() { int t; scanf("% 阅读全文
posted @ 2023-09-28 19:33 RonChen 阅读(29) 评论(0) 推荐(0)
摘要: 暴力枚举 枚举国内和国外的廊桥数量配额,再模拟航班停机过程 #include <cstdio> #include <algorithm> using namespace std; const int N = 100005; struct Flight { int l, r; // l 抵达时刻,r 阅读全文
posted @ 2023-09-26 18:04 RonChen 阅读(194) 评论(0) 推荐(2)
上一页 1 ··· 3 4 5 6 7 8 9 下一页