07 2023 档案

摘要:P7537 [COCI 2016&2017 #4 T5]Rima Solution 0719 A. P6503 [COCI2010-2011#3] DIFERENCIJA 拆开原代数式,问题化为RMQ问题。 可以解决问题的分支有很多:分治、线段树、平衡树、ST、单调栈 想到维护一个值可以贡献的范围, 阅读全文
posted @ 2023-07-22 17:04 haozexu 阅读(8) 评论(0) 推荐(0) 编辑
摘要:提高算法总结 - 总索引 I.索引 数据结构进阶 动态规划 图论进阶 基础算法与数学 II.附注 (Empty) 阅读全文
posted @ 2023-07-21 08:16 haozexu 阅读(3) 评论(0) 推荐(0) 编辑
摘要:基础算法与数学总结 【第四部分 数学】 1 质数 定义1.0.1 质数 质数是无法被除了1与它本身的自然数整除的数。 本章略:质数判定、质因数分解(两个都是试除法) 1.1 筛法 当然,筛法可不止用来筛个质数,注意到很多的常用函数都跟质因子有关系,筛法基于累计质因子的方法筛掉合数,累计的时候其实也就 阅读全文
posted @ 2023-07-21 08:10 haozexu 阅读(2) 评论(0) 推荐(0) 编辑
摘要:基础算法与数学总结 【第三部分 搜索】 1 BFS与DFS 搜索的基础应用略。 这里列举几个浅显的概念以及性质,这些会有很多用处: DFS序中一棵子树对应根节点的两次访问中间的区间 树的重心是使得去除后分出的最大一棵子树最小的点,直观理解就是平均分配 BFS基本性质:”两段性“、”单调性“ Topo 阅读全文
posted @ 2023-07-21 08:09 haozexu 阅读(9) 评论(0) 推荐(0) 编辑
摘要:基础算法与数学总结 【第二部分 基础数据结构】 1 栈 别的就不介绍了,至于它可以转化表达式这个大家应该很清楚。 其实本来表达式就是递归定义,而前后缀表达式用从内到外的优先级避免了括号,方便了计算机的处理。 1.1 单调栈 单调栈是利用决策集合的有序性排除无用决策的一种策略。其思想是”抛弃无用,合并 阅读全文
posted @ 2023-07-21 08:08 haozexu 阅读(3) 评论(0) 推荐(0) 编辑
摘要:基础算法与数学总结 【第一部分 基础算法】 本章并非没有很多可讲的,但是限于篇幅,有些本来能提三级标题的内容只能放进列表了列举了。 1 位运算 位运算是计算机进行计算的底层原理,位运算是指计算机对于数据转换为二进制后进行的操作。 这一部分主要是一些技巧,包括: 位运算基本性质 ∀(C)2,∼C=−1 阅读全文
posted @ 2023-07-21 08:08 haozexu 阅读(4) 评论(0) 推荐(0) 编辑
摘要:基础算法与数学总结目录 1. 综述 基础算法是解决问题的基本方法(二分、排序、位运算、前缀和、离散化、ST等)与思想(分治、倍增、贪心、二进制划分等)。 这些算法与思想是构建更高级算法与数据结构的基础,这些高级的东西是通过对于问题的划分、归纳、提取、抽象这些等等来优化遍历状态空间的效率。 数学章节主 阅读全文
posted @ 2023-07-21 08:06 haozexu 阅读(7) 评论(0) 推荐(0) 编辑
摘要:图论进阶总结 【第三部分 Tarjan与连通性】 阅读之前,读者应该很清楚Tarjan算法的实现流程,故不赘述。 1.无向图连通性 在无向图连通性这一方面主要就研究这样几个对象: 连通块 这个可以使用并查集进行维护,不再多说 割边、割点、环、双连通分量 这些就要使用Tarjan算法来求解 所以Tar 阅读全文
posted @ 2023-07-17 15:34 haozexu 阅读(40) 评论(0) 推荐(0) 编辑
摘要:图论进阶总结 【第二部分 树上问题】 1.树的直径 定义:树上两个最远的点之间的路径(或距离)。 当然,当我们关注一个概念的时候,里面的字眼当然是很重要的。就比如”最长“,这说明直径的最长性,这个性质就有可能在许多证明里运用。 怎么求呢? 树形DP 两次DFS(不使用于含负权的图) 这个两次DFS就 阅读全文
posted @ 2023-07-17 15:34 haozexu 阅读(53) 评论(0) 推荐(0) 编辑
摘要:图论进阶总结 【第一部分 最短路和最小生成树】 1.最短路 最短路其实是一个约束系统,这不太明显。但是我们要求一条最短的路径,首先思考如果可以将dist[x]更新dist[y],显然要dist[y]≥dist[x]+edge(x→y)dist[y]\ge dist[x]+edge(x\to y)di 阅读全文
posted @ 2023-07-17 15:34 haozexu 阅读(66) 评论(0) 推荐(0) 编辑
摘要:图论进阶总结目录 1.综述 图论是研究“图”结构的一门学科。让我们先来定义图: 图是一个二元组(V,E)(V,E)(V,E)。其中 VVV 是非空集,称为点集,对于 VVV 中的每个元素,称其为顶点;EEE 为各结点之间边的集合,称为 边集。通俗来讲图就是由若干给定的顶点及连接两顶点的边所构成的图形 阅读全文
posted @ 2023-07-17 15:33 haozexu 阅读(11) 评论(0) 推荐(0) 编辑
摘要:动态规划总结 【分类3-例题】 每一题后面有个小标,可以帮助定位一些东西 1 线性DP 虽然大多数DP都可以叫做线性DP,我们这里只列举几个具有重要意义或者做法巧妙的。 P1006 [NOIP2008 提高组] 传纸条 降维的技巧 这边我们先转化问题,求来回路径其实就是求两条路径,判重也简单,就是如 阅读全文
posted @ 2023-07-11 22:01 haozexu 阅读(8) 评论(0) 推荐(0) 编辑
摘要:动态规划总结【分类2-DP优化】 1 状态压缩 状态压缩,是从状态的表示入手的。在这样的问题中,我们常常可以抽象出一个表示答案必须的内容:一个数组,表示是否走过/当前状态。通常这种数据都只有两种类型。这个时候,就可以看看数据范围,判断是否使用状态压缩。 所以状态压缩省空间,主要是因为本来就没必要开那 阅读全文
posted @ 2023-07-11 22:01 haozexu 阅读(6) 评论(0) 推荐(0) 编辑
摘要:动态规划总结 【分类1-基础模型】 1.线性DP 1.1 综述 线性动态规划问题,就是说每个子问题的阶段以线性方式递推的动态规划问题。 这种问题是动态规划的基础。一般来说,如果不是对状态表示层面开展优化,那么大多数问题都是线性动态规划,故这就成了最基本的动态规划问题。 2.背包DP 好,这个内容已经 阅读全文
posted @ 2023-07-11 22:00 haozexu 阅读(14) 评论(0) 推荐(0) 编辑
摘要:动态规划总结目录 I. 综述 动态规划,常常用以解决最优化或是计数问题。 动态规划更像分治思想,但是又有所不同。它将问题中几个关键的量抽离来代表一个子问题,这是建模(而这些量就是状态)。显然,这些子问题有一个已知答案的边界问题。然后按照一定的顺序遍历状态空间(由“子问题”构成的空间),从以前的子问题 阅读全文
posted @ 2023-07-11 22:00 haozexu 阅读(8) 评论(0) 推荐(0) 编辑
摘要:Problem Lists for data structures 0x41 并查集 P1955 [NOI2015] 程序自动分析 经典 典型应用,维护具有传递性的关系。 P1196 银河英雄传说 边带权 “边带权”的并查集,用于维护更多集合里元素之间的信息,具体做法是假设每条边都有权值,这个权值在 阅读全文
posted @ 2023-07-10 12:23 haozexu 阅读(3) 评论(0) 推荐(0) 编辑
摘要:R.I.P - Very Early [![太空中的刺猬](https://cdn.luogu.com.cn/upload/usericon/541191.png)](ht 阅读全文
posted @ 2023-07-09 15:49 haozexu 阅读(56) 评论(2) 推荐(0) 编辑
摘要:I.综述 可持久化是一个类别,基础含义就是支持操作历史数据结构版本。 II.起源 但是你不觉得奇怪吗?真的这么简单? 其实它本质上是体现了对序列操作的“循序渐进”。 这是啥意思?就是前面的版本里不含后面的操作造成的影响,后面的版本累计了前面操作造成的所有影响。你觉不觉得这很显然? 没错,挺显然,但是 阅读全文
posted @ 2023-07-09 15:25 haozexu 阅读(22) 评论(0) 推荐(0) 编辑
摘要:I.综述 (挨嗨氦,要写完辣) 那么,这个经常被人打成“淀粉质”的算法,是啥呢? 点分治,就是指,按点分治。 这种算法将树上路径询问问题涉及的路径分为两类: 经过根节点 完全包含于根节点的一棵子树中 显然,第二种可以通过递归又转化为第一种。 所以,将子节点作为子问题,对第一类进行处理即可。 II.起 阅读全文
posted @ 2023-07-09 15:10 haozexu 阅读(4) 评论(0) 推荐(0) 编辑
摘要:I.综述 显然,离线分治就是要先预知初始序列和所有操作才能完成。 离线分治将所有操作放置在时间轴上,并分治地计算所有操作对查询操作造成的影响。 所以就是这样,将一个动态操作问题化为静态问题。 这是CDQ分治 还有一种整体分治,在处理一些与值域有关的问题时,我们试着利用好每一次计算的信息来回答所有询问 阅读全文
posted @ 2023-07-09 14:51 haozexu 阅读(11) 评论(0) 推荐(0) 编辑
摘要:I.综述&解释 平衡树,是非常平衡的树吗? 啊对对对。 平衡,就是指对于每一个节点:它的左右子树大小差不超过1。 当然,我们后来发现除了某些平衡树(e.g. 替罪羊树)之外,其他的都只是做到大致平衡。 II.真·综述 这是一种用来处理元素的前驱、后继,以及处理一些可以自底向上传递数据的结构(FHQ- 阅读全文
posted @ 2023-07-09 13:55 haozexu 阅读(4) 评论(0) 推荐(0) 编辑
摘要:I.综述&解释 自然,分块更加简单直接,就是对数据进行一定划分,对于大块进行维护,不成大块直接朴素。 更加通用,当然也更慢。 II.起源 这同样是要维护一段区间的信息。 我们牺牲了更多的效率,预处理一部分信息保存,这样我们尽可能地提高信息的使用率(尽管没有前两者高),但是更接近朴素,这就意味着更加通 阅读全文
posted @ 2023-07-09 11:55 haozexu 阅读(14) 评论(0) 推荐(0) 编辑
摘要:I.综述&解释 线段树,是一种树形结构其上每一个点都是一个区间,维护了该区间上的某些信息,故称“线段树”(SegmentTree)。 这种数据结构能够维护区间上的信息,支持单点/区间修改/查询,是一种更加通用的结构,变化多端,应用广泛,只要满足区间可加性的信息就能够使用,经过某些转化后具有区间可加性 阅读全文
posted @ 2023-07-09 11:39 haozexu 阅读(40) 评论(0) 推荐(0) 编辑
摘要:I.综述&解释 树状数组,一听就知道是长得像树的数组。emm 其内部节点的长度都是2的整数次幂,用一个数组存储,这样做利用了“任意一个正整数都能被唯一分解为不同的若干二的次幂的和的形式”这个定理,从而可用若干节点之和拼凑成为一个整体,表示一个前缀区间的信息。 II.起源 树状数组最基础的用法是用于维 阅读全文
posted @ 2023-07-08 18:07 haozexu 阅读(4) 评论(0) 推荐(0) 编辑
摘要:I.综述&解释 顾名思义,并查集就是一种支持查询元素属于哪个集合、合并集合的数据结构。 II.起源 这个数据结构是为了解决维护若干不重叠集合而提出的。 用代表元的思想来区分不同的集合,而用树形关系表示所属,有效地平衡了查询与修改的时间复杂度。 同时,引入的两种优化,分别通过“选择性丢失信息”和“启发 阅读全文
posted @ 2023-07-08 17:49 haozexu 阅读(14) 评论(0) 推荐(0) 编辑
摘要:数据结构进阶板块 - 总结目录 I.综述 数据结构,作为一种组织数据的方法,使得我们能够快速维护数据的某些性质、统计数据的信息。有传言云“算法+数据结构=程序”,其重要性可见一斑。 对于目前提高组的数据结构,大概按以下几个关键词分类: 形状 复杂度阶 维护信息的种类 内层思想 无论何时,探讨数据结构 阅读全文
posted @ 2023-07-07 20:14 haozexu 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 期末语文模拟题上一篇《外东消夏录》,让我认识了“消夏”这个词: >消夏本来是避暑的意思。若照这个意思,我简直是闹笑话,因为昆明比成都凉快得多,决无从凉处到热处避暑之理。 > 消夏还有一个新意思,就是换 阅读全文
posted @ 2023-07-01 13:40 haozexu 阅读(12) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示