摘要: 图论 差分约束 有 \(𝑛\) 个整数变量 \(𝑥_1∼𝑥_𝑛\)。 给定一些形如 \(𝑥_𝑖+𝑐≥𝑥_𝑗\) 的限制。问有没有可行解,如有输出方案。 例如 \(𝑥_1−1≥𝑥_2,𝑥_2≥𝑥_3,𝑥_3≥𝑥_1\) 就无解。 在单源最短路问题中,如果存在一条 \(𝑖 阅读全文
posted @ 2024-08-03 17:18 Yantai_YZY 阅读(22) 评论(0) 推荐(0)
摘要: 基础图论 图的存储方式 无向边可以拆成两条有向边 1. 邻接矩阵 邻接矩阵:若 \(𝑖→𝑗\) 存在有向边,则令矩阵 \(𝐴[𝑖][𝑗]=1\)。 遍历一个点的所有出边是 \(𝑂(𝑛)\) 的。 空间复杂度 \(𝑂(𝑛^2 )\)。 总结:复杂度太高,尽量不使用 bool hasE 阅读全文
posted @ 2024-08-03 17:18 Yantai_YZY 阅读(38) 评论(0) 推荐(0)
摘要: 实现代码: int exgcd(int a,int b, int &x, int &y){ if(b == 0){ x = 1; y = 0; return a; } int d = exgcd(b, a % b, x, y); int k = x; x = y; y = k - (a / b) * 阅读全文
posted @ 2024-08-03 17:18 Yantai_YZY 阅读(17) 评论(0) 推荐(0)
摘要: 进制转换 一个 \(m\) 进制的数字 \(\overline{a_0a_1\cdots a_k}\) 实际上是 \(a_0m^k+a_1m^{k-1}+\cdots+a_k\)。 \(10\) 进制转 \(m\) 进制:每次除以 \(m\) 并取出余数。 \(m\) 进制转 \(10\) 进制:计 阅读全文
posted @ 2024-08-03 17:18 Yantai_YZY 阅读(46) 评论(0) 推荐(0)
摘要: 下午 内容:STL 差分前缀和倍增 1. STL #include <iostream> #include <queue> #include <cmath> #include <algorithm> #include <vector> #include <cstring> #include <cst 阅读全文
posted @ 2024-08-03 17:17 Yantai_YZY 阅读(15) 评论(0) 推荐(0)
摘要: 上午 内容:基础数据结构 1. 链表 分类:单向和双向 单向:当前链表只指向下一个元素 双向:对于每个元素,记录其前面一个元素,也记录其后面一个元素。 注意:链表不建议使用 STL 的某些元素进行替代,手写链表更为方便。 1. 单向链表 做法:维护每个元素编号,然后维护 nx 指针,表示当前元素的下 阅读全文
posted @ 2024-08-03 17:17 Yantai_YZY 阅读(35) 评论(0) 推荐(0)
摘要: 下午 内容:二分分治模拟 广告:推荐此题单 1. 二分 二分查找 优点:在检验一个元素之后可以很快的舍弃掉一 半的元素,从而快速锁定目标元素。 T1 数的划分 问题简述:输入 \(n\) 个不超过 \(10^9\) 的单调不减的(就是后面的数字不小于前面的数字)非负整数 \(a_1,a_2,\dot 阅读全文
posted @ 2024-08-03 17:17 Yantai_YZY 阅读(19) 评论(0) 推荐(0)
摘要: 上午 内容:枚举递推贪心 广告:推荐此题单 1. 枚举 枚举:最基础、最容易想到 本质:不重复,不遗漏 T1 数的划分 问题简述:将整数 \(n\) 分成 \(k\) 份,且每份不能为空,任意两个方案不相同(不考虑顺序)。 方法:搜索 关键:有顺序 具体步骤: 尝试从大到小进行拆分,我们记录当前数剩 阅读全文
posted @ 2024-08-03 17:16 Yantai_YZY 阅读(22) 评论(0) 推荐(0)
摘要: 一 素数 今天先来回顾一下之前学过的素数(质数),当n是质数时,以下两个式子,至少有一个是成立的 1.a的d次方 % n == 1 2.存在一个i,0 <= i < r,a的d乘2的i次方的次方 % n == n - 1 那我们怎样用它判断素数呢? 如果\(n\)为质数 \(a\) 一定成立 如果\ 阅读全文
posted @ 2024-08-03 17:16 Yantai_YZY 阅读(33) 评论(0) 推荐(0)