【杂谈】初赛知识点
参考资料
CSP初赛知识点梳理 | 蔡勒公式及其推导 | 三种方式求递归时间复杂度 | 常用算法时间复杂度
1. 基础数论
-
计算日期
可以用可爱的蔡勒公式,首先给出定义:
是已经经过的世纪数, 是世纪内的年份, 是月份, 是日期数, 是星期。
比如:2022.9.14 中 ,而 就是我们要求的。
于是蔡勒公式给出了一个求 的好方法:。
特殊地,如果月份是 1 月或者 2 月,那么它要当成去年的 13 月或 14 月来计算。
例:计算 1976.1.17 是星期几?
将 1976 年 1 月转化成 1975 年 13 月,则 ,求出是星期六。
-
排列组合
:n 个元素中选出 m 个元素按顺序排列的方案数。
:n 个元素中选出 m 个元素的方案数(也就是不考虑顺序)。
2. 时间复杂度计算
-
主定理
目前我看到的有两种版本,参考资料里都有,我就不讲了(逃)
-
常见时间复杂度
邻接表和邻接矩阵遍历
下列情况对于 个点, 条边的图。
邻接矩阵:,对于每个点,都要将所有点访问一次。
邻接表:,先访问所有 数组,再访问边。
Dijsktra
朴素:
二叉堆/优先队列优化:
斐波那契堆优化:
SPFA
平均:,其中 为每个节点平均入队次数,一般为 4。
最坏: 关于SPFA,它死了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下