合集-2024 暑假安吉站
摘要:整数二分 我们可以做到每次排除一半的答案,时间复杂度 \(O(\log n)\)。 long long l = L, r = R; while(l <= r) { long long mid = (l + r) >> 1; if(mid > x) r = mid - 1; else l = mid
阅读全文
摘要:分治的延伸应用 应用场景 优化合并 假设将两个规模 \(\frac{n}{2}\) 的信息合并为 \(n\) 的时间复杂度为 \(f(n)\),用主定理分析时间复杂度 \(T(n) = 2 \times T(\frac{n}{2}) + f(n)\)。 能直观的看出优化程度还是很大的。 归并排序中
阅读全文
摘要:单调栈 引入 何为单调栈?顾名思义,单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。 为了描述方便,以下举例及伪代码以维护一个整数的单调递增栈为例。 过程 插入 将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。 例如,
阅读全文
摘要:启发式搜索 下面将简要介绍启发式搜索及其用法。 定义 启发式搜索(英文:\(\text{heuristic search}\))是一种在普通搜索算法的基础上引入了启发式函数的搜索算法。 启发式函数的作用是基于已有的信息对搜索的每一个分支选择都做估价,进而选择分支。简单来说,启发式搜索就是对取和不取都
阅读全文
摘要:双指针 本页面将简要介绍双指针。 引入 双指针是一种简单而又灵活的技巧和思想,单独使用可以轻松解决一些特定问题,和其他算法结合也能发挥多样的用处。 双指针顾名思义,就是同时使用两个指针,在序列、链表结构上指向的是位置,在树、图结构中指向的是节点,通过或同向移动,或相向移动来维护、统计信息。 接下来我
阅读全文
摘要:字符串哈希 定义 我们定义一个把字符串映射到整数的函数 \(f\),这个 \(f\) 称为是 \(\text{Hash}\) 函数。 我们希望这个函数 \(f\) 可以方便地帮我们判断两个字符串是否相等。 Hash 的思想 \(\text{Hash}\) 的核心思想在于,将输入映射到一个值域较小、可
阅读全文
摘要:并查集 引入 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。 顾名思义,并查集支持两种操作: 合并(\(\text{Union}\)):合并两个元素所属集合(合并对应的树) 查询(\(\text{Find}\)):查询某个元素所属
阅读全文
摘要:线段树 引入 线段树是算法竞赛中常用的用来维护 区间信息 的数据结构。 线段树可以在 \(O(\log N)\) 的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。 线段树 线段树的基本结构与建树 过程 线段树将每个长度不为 \(1\) 的区间划分成左右两
阅读全文
摘要:动态规划基础 主要介绍动态规划的基本思想,以及动态规划中状态及状态转移方程的设计思路,帮助各位初学者对动态规划有一个初步的了解。 引入 [IOI1994] 数字三角形。 给定一个 \(r\) 行的数字三角形(\(r \leq 1000\)),需要找到一条从最高点到底部任意处结束的路径,使路径经过数字
阅读全文
摘要:WTP 的大洗牌 题目描述 \(\text{input1}\) 3 1 1 1 1 2 3 \(\text{output1}\) 10 0 数据范围 shuffle.zip 第一题 题目描述 输入格式 输出格式 \(\text{input1}\) abyzuv 1 \(\text{output1}\
阅读全文
摘要:树形 DP 树形 \(\text{DP}\),即在树上进行的 \(\text{DP}\)。由于树固有的递归性质,树形 \(\text{DP}\) 一般都是递归进行的。 基础 以下面这道题为例,介绍一下树形 \(\text{DP}\) 的一般过程。 例题 洛谷 P1352 没有上司的舞会。 某大学有
阅读全文
摘要:总结 今天的题不太好搬,所以就不搬了。 简单总结一下这三场的模拟赛。 最大的感觉就是预估分数与实际分数相差太大,比如这一场预估 \(100 + 60 + [0, 20] + 40 = [200, 220]\)。 结果是 \(10 + 60 + 0 + 0 = 70\),真的差得太多。 最有信心的 \
阅读全文
摘要:数位 DP 下面将简要介绍数位 \(\text{DP}\)。 引入 数位是指把一个数字按照个、十、百、千等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 \(0 \sim 9\),其他进制可类比十进制。 数位 \(\text{DP}\):用来解决一类特定问题,这种问题
阅读全文
摘要:数数 题目描述 输入格式 输出格式 \(\text{input1}\) 4 5 -8 9 3 \(\text{output1}\) 0 17 34 53 数据范围 cuvelia.zip 木积 题目描述 输入格式 输出格式 \(\text{input1}\) 3 5 6 7 8 9 10 4 699
阅读全文
摘要:贪心 适用范围 贪心算法在有最优子结构的问题中尤为有效。 最优子结构的意思是问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。 证明 贪心算法有两种证明方法:反证法和归纳法。 一般情况下,一道题只会用到其中的一种方法来证明。 反证法:如果交换方案中任意两个元素/相邻的两个元素后,答
阅读全文
摘要:构造 引入 构造题是比赛中常见的一类题型。 从形式上来看,问题的答案往往具有某种规律性,使得在问题规模迅速增大的时候,仍然有机会比较容易地得到答案。 这要求解题时要思考问题规模增长对答案的影响,这种影响是否可以推广。 例如,在设计动态规划方法的时候,要考虑从一个状态到后继状态的转移会造成什么影响。
阅读全文
摘要:最短路 定义 路径 最短路 有向图中的最短路、无向图中的最短路 单源最短路、每对结点之间的最短路 性质 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的结点。 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的边。 对于边权为正的图,任意两个结点之间的最短路,任意一条的结点数不会超
阅读全文
摘要:最小生成树 定义 在阅读下列内容之前,请务必阅读图论相关概念与树基础部分,并了解以下定义: 生成子图 生成树 我们定义无向连通图的最小生成树(\(\text{Minimum Spanning Tree}\),\(\text{MST}\))为边权和最小的生成树。 注意:只有连通图才有生成树,而对于非连
阅读全文
摘要:强连通分量 简介 在阅读下列内容之前,请务必了解图论相关概念中的基础部分。 强连通的定义是:有向图 \(G\) 强连通是指,\(G\) 中任意两个结点连通。 强连通分量(\(\text{Strongly Connected Components}\),\(\text{SCC}\))的定义是:极大的强
阅读全文
摘要:百万富翁的第二次实验 题目描述 马克吐温有一本非常著名的小说《百万英镑》,这本小说中主角最后归还了百万英镑给两位富翁。但结果就是两位富翁依然有无穷的问题需要进行社会实验,于是,他们打算进行第二次社会实验。那就是不同财富值的人在一场舞会上会发生什么事情。为了满足自己的好奇,百万富翁们邀请了全伦敦所有人
阅读全文
摘要:欧拉函数 定义 欧拉函数(\(\text{Euler's totient function}\)),即 \(\varphi(n)\),表示的是小于等于 \(n\) 和 \(n\) 互质的数的个数。 比如说 \(\varphi(1) = 1\)。 当 \(n\) 是质数的时候,显然有 \(\varph
阅读全文
摘要:热门景点(hot) 题目描述 输入格式 输出格式 \(\text{input1}\) 10 5 1 7 4 0 9 4 8 8 2 4 6 6 2 8 2 2 3 6 7 8 \(\text{output1}\) Y N Y N Y 数据范围 #include<iostream> #include<
阅读全文
摘要:欧几里得定理 前面写过了。 中国剩余定理 引入 「物不知数」问题:有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何? 即求满足以下条件的整数:除以 \(3\) 余 \(2\),除以 \(5\) 余 \(3\),除以 \(7\) 余 \(2\)。 该问题最早见于《孙子算经》中,并有该问
阅读全文
摘要:组合数学 引入 排列组合是组合数学中的基础。排列就是指从给定个数的元素中取出指定个数的元素进行排序;组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数。排列组合与古典概率论关系密切。 在高中初等数学中,排列组合多是利用列表、
阅读全文
摘要:Problems.pdf \(08:00\) 拿到题目,居然有 \(\text{pdf}\) 还断网,这次好玩。 \(08:02\) 看完 \(\text{A}\) 题,发现又是一眼题? \(08:06\) 光速打完 \(\text{A}\) 题,简单过了一下大样例。 \(08:20\) 写了对拍,
阅读全文

浙公网安备 33010602011771号