随笔分类 - learn_cpp
1
摘要:# 树与图论 ## 1 基础概念 & 性质 ### 1.1 图 - 图由顶点和边组成,一条边连接两个顶点 - **自环**:一条边链接相同的两个顶点 - **重边**:两条边所链接的两个顶点都相同 - 点和边都可以带权,称为**点权**、**边权** - 点的度数(有向图分**入度**、**出度**
阅读全文
摘要:# 并查集 ## 亲戚问题 - 图论模型:每个人看作一个结点,亲戚关系看作无向边。 - 查询时,只关心是否连通,不关心内部具体的层级关系。 - 所以可以将各个层级直接压缩。 - 每插入一个元素就直接向根节点合并(路径压缩)。 - 例题:[P1551](https://www.luogu.com.cn
阅读全文
摘要:## 各题考察知识点 ### 单选题 1. 面向对象 / 面向过程(编程**思想**) 2. 栈(根据入栈序列得到出栈序列) 3. int 类型指针 4. 数组和链表的区别 5. 栈和队列(栈先进后出,队列先进先出) 6. 中缀表达式转前缀表达式 7. 哈夫曼树 / 哈夫曼编码 8. 完全二叉树编码
阅读全文
摘要:# 引入 ## 动态规划简介 - 动态规划 $dp=Dynamic \ Programming$ - 线性 $dp$:状态定义与题设**线性相关** - 将原问题分解成若干子问题 - 设计**状态**:状态是当前问题所在的局面 - 满足性质:无后效性,最优子结构 - **转移**:状态之间的关系,用
阅读全文
摘要:# 注意事项 - 比赛时 ide 中编译选项写 `-std=c++14` # 进制转换 ## 进制 - 进制:X 进制用 0~X-1 来计数 - 如果进制超过十进制,那么用字符表示 10 及以上的整数 - 重点:二进制、八进制、十六进制(0~F) - 二进制 Binary - 由 0,1 组成,逢二
阅读全文
摘要:## 第八题 ### 原题再现 > 对于一个含有 $26$ 个结点的完全二叉树,其中多少个结点没有子结点? **A.** 10 **B.** 11 **C.** 12 **D.** 13 ### 题目解答 - 叶子节点个数:$26-(2^4-1)=26-15=11$ - 倒数第二层的右边结点:$[(
阅读全文
摘要:# 线性数据结构 ## 链表 - `std::list` 是 STL 中的链表 - 特点:是一条链,空间复杂度 $O(n)$ - 插入与删除十分方便,时间复杂度 $O(1)$ - 寻找与查询数据比较麻烦,时间复杂度 $O(n)$ - 数组大小固定,链表大小可动态调整 - 注意:`std::vecto
阅读全文
摘要:## `vector` 容器 `(container)` ### 定义及头文件引入 - 定义:一个可变长数组 - 头文件:`#include ` ### 常用变量定义及函数解析 - `end()`:尾后迭代器。 - `push_back(x)`:在末端插入元素 `x`(自动扩容)。 - 构造函数 -
阅读全文
摘要:## 第一题 ### 题目再现 > 下列不属于面向对象语言的是:**A.** C++ **B.** Java **C.** Rust **D.** Fortran 知识点熟练度不够,Fortran 为面向过程语言 ## 阅读程序题 ### 代码再现 ```cpp #include using nam
阅读全文
摘要:## CSP-J1 题型 - 均为选择题,满分 100 分,时长 2 小时。 - 单项选择题 - 概念题 - 数学(如排列组合) - 阅读程序求输出 - 阅读程序题 - 是否正常运行 - 输入 -> 输出(特征) - 输出 -> 输入(特征) - 程序的变量变化情况(循环执行次数) - 求解代码时间
阅读全文
摘要:[Cnblogs 阅读](https://www.cnblogs.com/winter-tide/p/17592289.html) [Luogu 博客阅读](https://www.luogu.com.cn/blog/root777/su-gua-fen-ji-lu) 2023.07.28 用了 m
阅读全文
摘要:## P9484 GCD ### 注意事项 - 本题与节点数量无关 - 设 $gcd(i,j)=g$,则 $gcd(g,i)=g,gcd(g,j)=g$,$i-g$,$j-g$ 之间必定有连边 - 如果使用更小的公约数 $g'$,答案必定更差 - 答案为 $(i-g)+(j-g)=i+j-2 \ti
阅读全文
摘要:# 数学知识 - 平面直角坐标系 - 二次方程与二次函数 - 简记符号:$\sum$ $\prod$ $⌊n⌋$ 连加 连乘 向下取整 - 等差数列求首项、求末项、求和公式 - 等比数列首项为 $a$,公比为 $q$,项数为 $n$,求和 - 等比数列:$S=a+aq+aq^2+...+aq^{n-
阅读全文
摘要:## T356483 巧克力工厂 ### 注意事项 - $log_2(n)$ 运算示范: ```cpp long long n = 0, cur_pow = 1; cin >> n; for (int pow = 0; cur_pow < k; pow ++) { cur_pow = 1 << po
阅读全文
摘要:## P2580 于是他错误的点名开始了(黄) ### 注意事项 - 除特殊情况,推荐使用 `unordered_map`,省去一个 $O(logn)$ 复杂度。 - 在 `unordered_map` 中查找元素:`vis.find(s) == vis.end()` - 注意定义时的数据类型;`i
阅读全文
摘要:## 位运算 ### 常用运算符 - 按位与 `&` - 按位或 `|` - 按位异或 `^` - 取反 `~` - 左移 `>` - **非负整数原码反码补码都一样!** - **运算符优先级不清楚就打括号!** - [C++运算符优先级](https://zh.cppreference.com/
阅读全文
摘要:## 注意事项 - 当前阶段 CSP 中无需考虑 `STL` 效率问题(`list` 除外),**极其推荐使用**。 - `STL` 在绝大多数情况下比手写快(开启 `O2` 优化)。 - 自带的函数不手写(如 `std::sort`) - CSPJS/NOIP 2020 及之前没有 `O2` 优化
阅读全文
摘要:# 第一次摸底考试 总结 ## 考试结果 成绩:$100+100+80+0+70+0=350$ 排名:#$18$ ## 逐题分析 ### C 钱到题 #### 出现の问题 1. 约瑟夫环使用了数组进行维护,取模麻烦,使用 `std::queue` 更为方便 #### 坑点 1. 队列 `q` 需要进
阅读全文
摘要:## 计划注意事项 1. 参与所有课程与直播 2. 记笔记 3. 对于题目至少思考半小时无进展后才可参考题解 4. 认真完成作业,认真学习遇到的新知识 5. 模拟赛后复盘,总结 6. 积极使用洛谷博客 7. 不参考题解代码,不背诵题解代码(模板除外) ## 比赛注意事项 1. `freopen` 文
阅读全文
摘要:快速输入输出(IO) cin/cout 加速 ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int 快读 inline int read() { int x = 0, f = 1; // f 标记正负(1 正 / -1 负) char c
阅读全文
1

浙公网安备 33010602011771号