重要知识点
卡特兰数
以下是一些卡特兰数
二叉树计数
个结点的不同形态的二叉树的数量是卡特兰数 。
括号匹配
对括号的有效组合数。
栈操作序列(出栈顺序)
个元素的出栈顺序数。
凸多边形的三角划分
条边的凸多边形划分成三角形的方法数。
Dyck路径(格路问题)
- 从
到 ,每次向右上或右下移动一步,且不越过 轴的路径数。
- 从
满二叉树计数
个叶子的满二叉树的数量。
表达式加括号
个因子的乘法表达式加括号的方式数,例如: 个因子 有 种加括号方式: 。
棋盘不相交对角线
棋盘上放置不相交的对角线(从左上到右下)的方法数。
凸多边形划分
边形的顶点配对成不相交的弦的方式数。
主定理
主定理(Master Theorem)是用于求解分治算法递归式时间复杂度的一个强大工具。它适用于形式如下的递归关系:
其中:
(子问题的数量); (问题规模缩小的倍数); 是递归之外的计算成本(分割和合并的成本)。
主定理通过比较
,则 ; ,则 ; ,则 。
这只是简化过的情况,可以自行去了解更加详细的主定理。
存储单位
Windows 与 Linux 的一些操作命令
| 操作描述 | Windows 命令 | Linux / Unix 命令 |
|---|---|---|
| 列出目录内容 | dir | ls |
| 改变当前目录 | cd <目录路径> | cd <目录路径> |
| 返回上一级目录 | cd .. | cd .. |
| 显示当前目录路径 | cd | pwd |
| 创建新目录 | mkdir <目录名> | mkdir <目录名> |
| 删除空目录 | rmdir <目录名> | rmdir <目录名> |
| 删除文件 | del | rm |
| 复制文件 | copy | cp |
| 移动/重命名文件 | move | mv |
| 查看文件内容 | type | cat |
| 分页查看文件内容 | more | less |
| 查找文件 | dir /s <文件名> | find / -name <文件名> |
| 查找文本 | findstr "文本" <文件> | grep "文本" <文件> |
排序
| 排序算法 | 平均时间复杂度 | 最好情况 | 最坏情况 | 空间复杂度 | 是否稳定 |
|---|---|---|---|---|---|
| 冒泡排序 | 稳定 | ||||
| 插入排序 | 稳定 | ||||
| 选择排序 | 不稳定 | ||||
| 归并排序 | 稳定 | ||||
| 快速排序 | 不稳定 | ||||
| 堆排序 | 不稳定 | ||||
| 计数排序 | 稳定 | ||||
| 基数排序 | 稳定 | ||||
| 希尔排序 | 不稳定 | ||||
| TimSort | 稳定 |
- 基于关键字比较的算法:冒泡排序,选择排序,插入排序,快速排序,归并排序,堆排序。
09/16
层次遍历是按层从小到大,每一层从左到右的顺序遍历。
5 个没有区别的结点构成不同形态的二叉树的种类的个数。
- 因为卡特兰数
能表示具有 个结点的不同二叉树的形态数,所以答案为 ; - 由于我比较蒟蒻,我的方法是令
表示 个点, 层数,最后一层有 个点的方案数,然后慢慢转移。其实 个点还是能接受的。
- 因为卡特兰数
线性表若采用链表存储结构,内存中可用存储单元的地址可以是不连续的(即不一定要求地址连续)。
- 链表不需要连续的内存空间,而是利用分散的内存块通过指针串联起来。这与数组(顺序存储结构)形成对比,数组要求连续的内存空间。
在 Linux 系统中,比较两个文件有无不同之处的命令是
diff。- 在 Windows 系统中应该是
fc。
- 在 Windows 系统中应该是
断电之后仍能保存数据的(非易失性存储器)有 硬盘、固态硬盘、U盘/闪存驱动器、光盘、ROM(只读存储器) 等;易失性存储器有 RAM (可读写储存器)、Cache (高速缓存)、显存 (VRAM) 等。
田忌赛马问题
- 站在田忌角度思考问题,考虑贪心,对两人的马的能力值进行排序,先比较两人最好的马,若不能赢,则比较两人最差的马,若还不能赢,就用田忌最差的马去换齐王最好的马,尽量平局。
- 证明:其实就是能赢就赢嘛,如果想用田忌较弱的赢齐王较强的,再用田忌较强的赢齐王较弱的,那么这样的对局也可以变成用田忌较强的赢齐王较强的,再用田忌较弱的赢齐王较弱的,后者的方法不劣。
09/17
有红、黄、蓝、绿四种颜色的小旗,分别有
面,任意取出三面按顺序排成一行,表示一种信号,那么这些旗子总共可以表示不同的信号的种数。 - 考虑分类计数: 1.三个颜色都不同时,有
种; 2.两个颜色相同,一个不同时,有 种,其中重复的颜色有 种选择,剩下 种颜色中选出一个单独放进去,位置有 种选择; 3.三个颜色都相同时,只能放蓝和绿色的小旗,故有 种。 - 综上所述,这些旗子总共可以表示不同的信号种数为
种。
- 考虑分类计数: 1.三个颜色都不同时,有
表示某个算法输入规模为 时的运算次数。如果 为常数,且有递归式 ,求 。 - 有两种做法:递归树法和主定理法。这里将主定理法:
; ; ; 所以属于第二种情况 时, 。
- 有两种做法:递归树法和主定理法。这里将主定理法:
某学校来了一位新老师,三个同学猜测新老师教什么科目,小美说:“不是教语文,也不是教数学”;小元说:“不是教数学,一定是教英语”;小天说:“不是教英语,一定是教数学”。他们三人中有一人全猜对了,一人全猜错了,还有一人只猜对了一半。问:新老师究竟教什么科目?
- 分别假设新老师为语文,数学,英语老师,接着判断三人的正确性,结合提示,得出最后的结果即可。
方程
,在 都取 中的整数时,存在解的组数。 - 成立的前提是
的二进制位是 的子集,或 的二进制位是 的子集(即一个数包含另一个数的所有位置)。 - 那么答案就是
,其中: 枚举 的子集 为 ,利用二项式定理,得为 , ,由于对称 和 的情况,乘以 ;最后减去 时重复计算的 次。
- 成立的前提是
09/18
零碎的做了一些题,虽然依旧被薄纱(特别是 2024-S 最后一题),但是没什么特别必要记录的题。
做前面的选择题还要考虑暴力模拟 dp 吗???
- 关于 memset
memset(a,x,sizeof a) 中 0x00,0xff,0x1f,0x3f,0x7f,0x80,0xcf,0xef 等。
拿 0x3f 举例,在 int 下就是 long long 下就是
| 初始化值 | int 数组效果 (32位) | long long 数组效果 (64位) | 有符号 int 值 | 有符号 long long 值 | 常见语义 |
|---|---|---|---|---|---|
| 0x00 | 0x00000000 | 0x0000000000000000 | 零 | ||
| 0xFF | 0xFFFFFFFF | 0xFFFFFFFFFFFFFFFF | 负一 | ||
| 0x3F | 0x3F3F3F3F | 0x3F3F3F3F3F3F3F3F | 安全正无穷 | ||
| 0x7F | 0x7F7F7F7F | 0x7F7F7F7F7F7F7F7F | 较大正数 | ||
| 0x80 | 0x80808080 | 0x8080808080808080 | 负无穷 | ||
| 0xCF | 0xCFCFCFCF | 0xCFCFCFCFCFCFCFCF | 大负数 | ||
| 0xEF | 0xEFEFEFEF | 0xEFEFEFEFEFEFEFEF | 较大负数 |
注意事项:
"正无穷" → 选择
0x3F"负无穷" → 选择
0x80"-1" → 选择
0xFF避免使用
0x7F:有溢出风险() 谨慎使用
0xCF、0xEF特殊的时候可能运用到其他的类似于
0x1f。
09/19
初赛前最后一晚,复习些啥好呢???
阅读程序小技巧:
- 对于二进制函数
,可以先化简再分别代入 列表找规律。 是不进位加, 是不退位减。
- 对于二进制函数
关于二进制之间的转化:
(2024-S 中出现,可以通过找规律得到)