07 2024 档案

摘要:这里说一下为什么要在博客园写东西,其实有几个主要原因: 首先是我一个朋友写题解的时候,因为多了一个空格被打回。然后我这个朋友就开始在这里写东西了。 然后这个朋友找到了一个拿过金牌的学长,他同样之前审过题解,总之他认为只要不是题解写的完全不能看,或者在某些地方有一些事实性错误,都不应该因为一些非常离谱 阅读全文
posted @ 2024-07-31 18:04 zxh923 阅读(17) 评论(1) 推荐(1) 编辑
摘要:基本概念 给你一个字符串 s,对于所有 s 的后缀,我们按照字典序排序。最后输出排在 i 的后缀是原串里的第几个。 sai 指字典序排名第 i 的是第几个前缀。 O(n2logn) 直接找出所有后缀,排序。 O(nlog2n)阅读全文
posted @ 2024-07-31 00:35 zxh923 阅读(9) 评论(0) 推荐(0) 编辑
摘要:文本生成器 首先考虑一个容斥,算出不包含任何一个单词的文章的数量。 我们设 dpi,j 表示当前文章长度为 i,最后一个字符在 AC 自动机上的 j 号点的方案数。我们要求的答案就是 \(\displaystyle 26^m-\sum_{i=0}^{idx}f_ 阅读全文
posted @ 2024-07-30 00:28 zxh923 阅读(7) 评论(0) 推荐(0) 编辑
摘要:AC 自动机1 前置知识:KMP,字典树。 AC 自动机,不是用来自动 AC 题目的,而是用来处理字符串问题的(虽然确实可以帮助你 AC)。 这里总结了 AC 自动机三大步骤。 插入 考虑字典树,我们直接把所有模式串插入到字典树内即可,这并不困难,代码: vo 阅读全文
posted @ 2024-07-29 00:53 zxh923 阅读(413) 评论(0) 推荐(0) 编辑
摘要:基础 下文的字符串下标皆从 1 开始。 考虑定义一个数组 nei,指的是设字符串 t 的前 i 位为 s。字符串 s 的前 nei 位与后 nei 位完全相同,且 nei 取到了最大值,并且 nei 不为字符串 阅读全文
posted @ 2024-07-28 20:28 zxh923 阅读(14) 评论(0) 推荐(0) 编辑
摘要:例题 MKTHNUM - K-th Number 考虑如果我们对每个操作进行二分怎么做。 显然是对这个区间不大于二分值 mid 的数统计个数,看个数 numk 的大小关系。如果 num 更大,证明 mid 大了,如果 num 更小,证明 \(mi 阅读全文
posted @ 2024-07-27 12:37 zxh923 阅读(15) 评论(0) 推荐(0) 编辑
摘要:优化动态规划 序列 首先要会最长上升子序列的转移,这里就不说了。 我们 i 位置的初始值为 ai,可能变成的最大值为 mxi,可能变成的最小值为 mni。 然后如果 j 要转移到 i,则需要满足:\(j<i,mx_j\le a_i,a_j\le 阅读全文
posted @ 2024-07-26 19:56 zxh923 阅读(11) 评论(0) 推荐(0) 编辑
摘要:简介 前置芝士:归并排序。 cdq 分治是个离线算法,可以解决三维偏序或者优化 dp。 陌上花开 维护三维偏序有个口诀:一维排序,二维归并,三维数据结构。 考虑第一维直接排序解决掉,然后还剩两维。 我们考虑第二维用归并排序解决掉。然后假设当前区间 [l,r],区间中点 \(m 阅读全文
posted @ 2024-07-23 22:55 zxh923 阅读(131) 评论(0) 推荐(0) 编辑
摘要:给个链接:集合。 很神秘的题目。基本上看到之后就可以想到哈希。 首先想到一个比较神秘的暴力。就是对于每个询问,扫一遍所有 a 中的数出现的位置,把它弄成一个哈希值(具体怎么弄随意)存到 set 里,然后看看是不是和 b 中的数出现的位置这样操作后的集合完全相等。事实上就是判断是否对于 阅读全文
posted @ 2024-07-21 12:24 zxh923 阅读(124) 评论(0) 推荐(0) 编辑
摘要:普通莫队 DQUERY - D-query 先想一下最朴素的暴力怎么写。显然可以用一个 cnt 数组记录每种元素的出现次数,然后如果这种元素是第一次出现,则增加答案,时间复杂度 O(nq)。 然后考虑如果如何用一个已经求出来答案的询问推出另外一个询问的答案。 显然我们要增加一部分数和 阅读全文
posted @ 2024-07-19 18:00 zxh923 阅读(11) 评论(0) 推荐(0) 编辑
摘要:Blood Cousins 前置知识:线段树合并。 我们先把题目转化一下。这里先设 vp 级祖先为 u,事实上要求的东西就是 up 级后代的个数减 1,减 1 是因为要把自己减去。显然这个目标点 t 要满足两个要求: \(t 阅读全文
posted @ 2024-07-18 12:12 zxh923 阅读(7) 评论(0) 推荐(0) 编辑
摘要:权值线段树 线段树在这里作为前置知识,我们就不说了,而且权值线段树也不是核心内容,不会大篇幅讲。 首先,权值线段树在维护什么?维护的是桶。 然后,权值线段树有什么用?可以求一些序列的第 k 大之类的问题。 于是我们放个板子题。 第 k 小整数 简单题,直接看代码和注释就行,当然也可以使用线性 阅读全文
posted @ 2024-07-17 17:26 zxh923 阅读(12) 评论(0) 推荐(0) 编辑
摘要:基本思想 放在前面:该数据结构的时间复杂度很玄学,一般用于骗分,当然不排除作为正解的可能性。 下面简称该数据结构为 KDT. KDT 是一种可以高效处理 k 维空间信息的数据结构。换句话说,他是维护 k 维空间 n 个点的一种平衡树。 一般在算法竞赛中,我们需 阅读全文
posted @ 2024-07-16 13:48 zxh923 阅读(4) 评论(0) 推荐(0) 编辑
摘要:给个题目链接:迷宫守卫。 下面直接开始讲了。 发现一个事情,省选的题已经不怎么考板子难度很高的题了,现在考的都是思维难度非常高的题。 首先,我们考虑字典序的性质,如果第一位劣,那么后面无论多优都没用,所以我们要优先满足靠前的位置。 于是我们考虑使用二分来找出第一个数,后面以此类推。每次对于每个比当前 阅读全文
posted @ 2024-07-15 21:40 zxh923 阅读(14) 评论(0) 推荐(0) 编辑
摘要:笛卡尔树基本概念 笛卡尔树是基于一个静态序列 a 的,根据这个序列 a,我们可以构造出对应的笛卡尔树。 笛卡尔树有三点要求需要满足: 笛卡尔树是二叉树。 笛卡尔树的编号的中序遍历为 1n,权值中序遍历为 a。 笛卡尔树的权值满足大根堆或者小根堆的性质。 这里 阅读全文
posted @ 2024-07-15 12:32 zxh923 阅读(66) 评论(0) 推荐(0) 编辑
摘要:吉司机线段树 为了方便说板子,这里直接把板子题放上去讲了。 线段树 3 简单说一下 5 个操作都在干什么: 区间加一个数。 区间和一个数取最小值。 区间求和。 区间求最大值。 区间求历史最大值。 好了,前 4 个操作如果单独拉出来出成一道题,显然是好做的,于是我们的难点就是最后一个操 阅读全文
posted @ 2024-07-15 09:27 zxh923 阅读(20) 评论(0) 推荐(1) 编辑
摘要:李超线段树 李超线段树 发现要维护的问题十分难做,所以我们要引入李超线段树。 我们发现,如果在一个区间内,一条线段的整体在另一条线段上方,那么这条线段一定更优,我们称之为最优线段。但是如果并不是这样,应该如何做呢? 这里给出线段为一个区间内的最优线段的条件: 线段的定义域覆盖了整个区间。 线段在区间 阅读全文
posted @ 2024-07-13 13:30 zxh923 阅读(28) 评论(0) 推荐(0) 编辑
摘要:点分治及其应用 思想 先说一下点分治的基本思想:选择树上一个点作为分治中心,为了保证复杂度,选择的点有一些特殊的要求。 接下来,把原问题分解成几个相同的子问题,进行递归解决。 一般地,我们假设当前根节点为 rt,所以我们要统计的路径必然满足以下二者之一: 经过 rt。 不经过 \(r 阅读全文
posted @ 2024-07-12 19:02 zxh923 阅读(15) 评论(0) 推荐(0) 编辑
摘要:Only Pluses 算法:数学。 题意简述:有三个数,每次选择一个数 x,使得 x 增加一,至多操作 5 次,最后求出这三个数的乘积最大值。 简单题,一眼秒了。考虑把这 3 个数从小到大排序,显然加最小的数比加其他的数更优。 简单证一下:设排序后的三个数为 \(a 阅读全文
posted @ 2024-07-12 10:47 zxh923 阅读(67) 评论(0) 推荐(1) 编辑
摘要:The Shortest Statement 算法:树链剖分,最小生成树,最短路。 先讲一下题意:有一个 nm 边的无向连通图,q 次询问,每次询问 ab 的最短路长度。 数据范围 1n,m105,mn20。 首 阅读全文
posted @ 2024-07-11 12:37 zxh923 阅读(7) 评论(0) 推荐(0) 编辑
摘要:Mr. Kitayuta's Colorful Graph 算法:根号分治。 题目大意先说一下:给一个 nm 边的无向图,边有颜色。q 组询问,每次给出 u,v,求有多少种颜色 c,使得存在一条 uv 的路径,这个路径中每条边的颜色 阅读全文
posted @ 2024-07-11 09:45 zxh923 阅读(9) 评论(0) 推荐(0) 编辑
摘要:前置芝士:强连通分量。 先放一个板子题:2-SAT。 我们先考虑拆点,把每个变量 i 拆成两个点,i×2i×2+1,前一个代表这个变量 i 取假,后一个代表这个变量 i 取真。 既然有了点,我们就要考虑连边。例如给一个条件:\ 阅读全文
posted @ 2024-07-10 21:32 zxh923 阅读(7) 评论(0) 推荐(0) 编辑
摘要:链式前向星(写法 1):head 数组不初始化成 1。(同学写题) 链式前向星(写法 2):idx 不初始化成 1。(同学写题) 用到队列时忘记 pop。(同学写题) 清空时循环到 n,但是 n 没有输入。(我写题) 二维数组 阅读全文
posted @ 2024-07-10 20:39 zxh923 阅读(5) 评论(0) 推荐(0) 编辑
摘要:前置芝士:动态开点线段树。 先放一个板子题:Legacy。 题意放一下: 有 n 个点,q 次操作: 从 ab 连一条权值 c 的有向边。 从 a 向编号在区间 [l,r] 内的每个点连一条边权为 c 的有向边。 从编号在区间 \ 阅读全文
posted @ 2024-07-10 20:12 zxh923 阅读(19) 评论(0) 推荐(0) 编辑

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