12 2024 档案

摘要:Bellman-Ford单源最短路算法 不采用 SPFA 实现的Bellman-Ford算法 " 题目中的图没有特殊性质时,若 SPFA 是标算的一部分,题目不应当给出 Bellman–Ford 算法无法通过的数据范围 " Bellman-Ford的原理如下 先枚举节点,在枚举边,每进行一轮循环,对 阅读全文
posted @ 2024-12-31 21:47 才瓯 阅读(10) 评论(0) 推荐(0) 编辑
摘要:最短路——分层图问题 这里以一道题目为例 题目描述 Alice 和 Bob 现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在 \(n\) 个城市设有业务,设这些城市分别标记为 \(0\) 到 \(n-1\),一共有 \(m\) 种航线,每种航线连接两个城市,并且航线有一定的价格。 阅读全文
posted @ 2024-12-30 17:10 才瓯 阅读(26) 评论(0) 推荐(0) 编辑
摘要:数论基础A 欧几里得算法(辗转相除法)求最大公约数GCD 有两个整数 \(a,b(a>b)\) ,记它们的最大公约数为 \(gcd(a,b)\),对于任意的 \(a,b\ne 0\) 满足等式 : \[gcd(a,b)=gcd(b,a\% b) \] 充分性证明: 设 \(d\) 为 \(a,b\) 阅读全文
posted @ 2024-12-29 17:38 才瓯 阅读(6) 评论(0) 推荐(0) 编辑
摘要:SCU 20241215 E: 题目大意:给定长度为 \(n\) 的数列,问其中多少连续子段是等差数列 #include <iostream> #define streampreset() ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); usi 阅读全文
posted @ 2024-12-29 15:23 才瓯 阅读(5) 评论(0) 推荐(0) 编辑
摘要:快速幂优化矩阵幂、乘法 对于一般的矩阵计算有 \(A_{m,n}*B_{n,p}=C_{m,p}\),其中作为乘积因子的两个矩阵必须满足前因子列数与后因子行数相同 积的行数等于前因子的行数,列数等于后因子的列数 ,任意的 \(c_{i,j}\) 可由定义的计算得出 \(c_{i,j}=\sum_{k 阅读全文
posted @ 2024-12-28 14:26 才瓯 阅读(30) 评论(0) 推荐(0) 编辑
摘要:CF补题 981-Div.3-20241226 Dashboard - Codeforces Round 981 (Div. 3) - Codeforces A: 题目大意:\(x\) 从 \(0\) 开始,轮流将 \(x\) 前后移动 \(i*2-1\), 求最后移动出 \([-n,n ]\) 的 阅读全文
posted @ 2024-12-28 10:21 才瓯 阅读(5) 评论(0) 推荐(0) 编辑
摘要:动态规划入门——状态转移方程的简单构造思想 动态规划,往往是作为DFS的最终优化方案,由DFS的递归公式 到 状态转移方程 动态规划的题目一般是给出一组数据,每组数据都对应一个最终的解,我们需要选择出最优的一个解 怎么在过程中确定选择哪组数组才能得到最优解呢? 可以构造一个或多个状态转移方程来对解的 阅读全文
posted @ 2024-12-24 17:01 才瓯 阅读(21) 评论(0) 推荐(0) 编辑
摘要:Dijkstra单源最短路堆优化算法 使用基于堆的优先队列,我们可以在进行松弛操作前对找边进行优化操作 时间复杂度为 \(O(m\log m)\) ,其中 \(m\) 为边的数量,优先队列找边的时间复杂度为\(O(\log m)\) 优先队列 默认为一个大根堆,即堆顶的元素的优先级最高,体现在某个变 阅读全文
posted @ 2024-12-23 13:39 才瓯 阅读(34) 评论(0) 推荐(0) 编辑
摘要:CF补题 993-Div.4-20241221 Dashboard - Codeforces Round 993 (Div. 4) - Codeforces A: 题目大意:给出一个 \(n\) ,求有多少有序正整数数对 \((a,b)\),使得 \(a=n-b\) #include <iostre 阅读全文
posted @ 2024-12-22 19:38 才瓯 阅读(9) 评论(0) 推荐(0) 编辑
摘要:NOI 1.6 12 题目描述 题目给出的 \(n\) 最大可以取到 \(100\) ,即计算 \(2^{100}\) ,明显是超过 long long 的 \(2^{63}-1\),所以需要使用高精度来计算幂次方的乘法 简单的高精度,即每次计算一个小整数乘上一个大整数 循环 \(n\) 次,每次对 阅读全文
posted @ 2024-12-21 13:41 才瓯 阅读(35) 评论(0) 推荐(0) 编辑
摘要:快速幂笔记 快速幂,可以优化指数计算,将朴素的 \(O(n)\) 的时间复杂度优化到 \(O(\log n)\) 原理是,将幂通过二进制拆分,只需要计算拆分后的值,就能组合出完全幂的答案 举例如下:有 \(a^{14} = a^{1110_{(2)}} = a^{1*2^3}*a^{1*2^2}*a 阅读全文
posted @ 2024-12-20 15:28 才瓯 阅读(39) 评论(0) 推荐(0) 编辑
摘要:CF补题 970-Div.3-20241217 Dashboard - Codeforces Round 970 (Div. 3) - Codeforces A: 题目大意:给出 \(a\) 个 \(1\) 和 \(b\) 个 \(2\) 组成的序列,可以在其中加入 \(+or-\) 号,判断能否使 阅读全文
posted @ 2024-12-20 14:31 才瓯 阅读(7) 评论(0) 推荐(0) 编辑
摘要:题目描述 根据之前的斐波那契数列简单版,可以看出,我们使用递归只能在一秒内算出第 \(46\) 级台阶的走法 这是因为递归是一种极其低效的算法,每次都会重复计算很多数据,它既要把问题分解递到更小的问题上去,还要把答案从小的问题归回到最后的问题上 那么,我们可以思考这样一个问题,能不能直接从小问题入手 阅读全文
posted @ 2024-12-18 17:24 才瓯 阅读(73) 评论(0) 推荐(0) 编辑
摘要:Dijkstra单源最短路朴素算法(空间优化) 基于使用邻接表存储连接边的方法,可以有效的降低空间复杂度 在稀疏图(边的数量远小于顶点数量平方的图)中,邻接矩阵会大量占用无用的内存,导致Re,我们采用邻接表的办法,只存储存在的边,减少无关占用。相反,在稠密图(边的数量接近顶点数的平方的图)中,邻接表 阅读全文
posted @ 2024-12-18 11:39 才瓯 阅读(14) 评论(0) 推荐(0) 编辑
摘要:普及-每日一题洛谷P1683 题目描述 现在各大 oj 上有 \(n\) 个比赛,每个比赛的开始、结束的时间点是知道的。 yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。 所以,他想知道他最多能参加几个比赛。 由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 \( 阅读全文
posted @ 2024-12-17 21:30 才瓯 阅读(9) 评论(0) 推荐(0) 编辑
摘要:Dijkstra单源最短路朴素算法 基于无优化的朴素算法,这里使用邻接矩阵的方法存储路径(空间复杂度高) Dijkstra单源最短路的算法原理如下: 从起始点s开始,每次依据贪心选取最近连通点且未被访问过的点,移动到该点上,更新最短路径,直到把所有点都访问完 初始化时,需要将s起始点到所有点的dis 阅读全文
posted @ 2024-12-17 16:54 才瓯 阅读(17) 评论(0) 推荐(0) 编辑
摘要:多源最短路算法-Floyd 使用Floyd(弗洛伊德)算法,可以以 \(O(n^3)\) 的时间复杂度求出一张多源图的任意两点间的最短路径 一般采用邻接矩阵的方法来存储图: int g[N][N]; g[i][j] 其中,g[i][j]的意义为第i个节点到第j个节点的权重 我们需要对邻接矩阵进行路径 阅读全文
posted @ 2024-12-16 13:52 才瓯 阅读(47) 评论(0) 推荐(0) 编辑
摘要:深入二分思想 二分在实际使用中常常会出现死循环的问题 这是因为我们对二分临界状态的不熟悉而导致的,这里介绍一种通用的分界想法: 整数二分: int l = begin - 1, r = end + 1; while (l + 1 != r) { int mid = l + r >> 1; if (j 阅读全文
posted @ 2024-12-15 21:49 才瓯 阅读(23) 评论(0) 推荐(0) 编辑
摘要:CF补题 991-Div.3-20241210 Dashboard - Codeforces Round 991 (Div. 3) - Codeforces A: 题目大意:给出 \(n\) 个字符串,求前多少个字符串的大小之和小于 \(m\) #include <iostream> #includ 阅读全文
posted @ 2024-12-15 20:28 才瓯 阅读(9) 评论(0) 推荐(0) 编辑
摘要:树与图的存储与遍历(邻接表)笔记 树是一种特殊的图,树没有环且相互连通 图分为有向图和无向图,无向图可以转化为双向的有向图 图的存储 这里介绍一种存储图的方式:邻接表 数组模拟: int h[N], e[N], ne[N], idx; 把图的每个顶点都开一条单链表,记录在 h[N] 中,这个顶点能连 阅读全文
posted @ 2024-12-13 21:47 才瓯 阅读(32) 评论(0) 推荐(0) 编辑
摘要:BFS入门笔记 BFS广度优先搜索,在处理问题时,优先考虑更多的机会,而不是像DFS那样优先走一条路,再回溯 BFS基于队列实现,目的是把可能的解放在同一层处理,即BFS队列中至多只有两层的解 考虑完前一层可能的解后,再考虑下一层的解。把当前解的后续解再放到队列尾部。 如上图中,BCDE处在同一层考 阅读全文
posted @ 2024-12-08 13:47 才瓯 阅读(83) 评论(0) 推荐(0) 编辑
摘要:CF补题 964-Div.4-20241206 Dashboard - Codeforces Round 964 (Div. 4) - Codeforces A: 题目大意:给定一个两位数正整数 n ,求其位数之和 #include <stdio.h> int main() { int n; sca 阅读全文
posted @ 2024-12-08 10:01 才瓯 阅读(32) 评论(0) 推荐(0) 编辑
摘要:并查集笔记 并查集,一种可以高效处理连通区块问题的数据结构,可以优化集合合并操作,判断集合是否连通 它的原理可以简单概括为: 设置一个数组,把每个元素的祖先节点存在数组中,当要查询这个节点所在集合时,通过层层向上,最终找到一个最远祖先 初始化祖先数组时,我们将每个元素的祖先都设置为他自己,当我们查询 阅读全文
posted @ 2024-12-06 11:07 才瓯 阅读(17) 评论(0) 推荐(0) 编辑
摘要:Trie树-字典树笔记 Trie树是一种高效的存储字符串的数据结构,它将多个字符串的前缀合并在一条边上,每次插入时,都判断当前的树上有无能够重合的前缀,如果没有就单独增加一个节点。通过合并前缀,可以做到快速查找已经优化空间的操作。 下面是使用数组模拟实现Trie树的部分代码: 我们首先定义一个二维数 阅读全文
posted @ 2024-12-01 16:45 才瓯 阅读(15) 评论(0) 推荐(0) 编辑
摘要:普及-每日一题洛谷P1683 题目描述 不是任何人都可以进入桃花岛的,黄药师最讨厌像郭靖一样呆头呆脑的人。所以,他在桃花岛的唯一入口处修了一条小路,这条小路全部用正方形瓷砖铺设而成。有的瓷砖可以踩,我们认为是安全的,而有的瓷砖一踩上去就会有喷出要命的毒气,那你就死翘翘了,我们认为是不安全的。你只能从 阅读全文
posted @ 2024-12-01 13:50 才瓯 阅读(7) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示