随笔分类 - AcWing基础课
AcWing中出现的知识总结、题解等
摘要:##$AcWing$ $841$. 字符串哈希 一、题目描述 给定一个长度为 $n$ 的字符串,再给定 $m$ 个询问,每个询问包含四个整数 $l_1,r_1,l_2,r_2$,请你判断 $[l_1,r_1]$ 和 $[l_2,r_2]$ 这两个区间所包含的字符串子串是否完全相同。 字符串中只包含大
阅读全文
摘要:题目传送门 一、什么是散列表 又称哈希表,将一个比较大的值域映射到一个小的范围,比如$0\sim 109$,映射到$0 \sim 105$范围内。原因是原来的值域是比较稀疏的,稠密的。 类似于离散化,离散化保序,而哈希表不保序。离散化是一种极其特殊的$Hash$方式。 一般的操作有: 插入 查找 删
阅读全文
摘要:##$AcWing$ $839$. 模拟堆 一、题目描述 维护一个集合,初始时集合为空,支持如下几种操作: I x,插入一个数 $x$; PM,输出当前集合中的最小值; DM,删除当前集合中的最小值(数据保证此时的最小值唯一); D k,删除第 $k$ 个插入的数; C k x,修改第 $k$ 个插
阅读全文
摘要:##$AcWing$ $838$. 堆排序 一、题目描述 输入一个长度为 $n$ 的整数数列,从小到大输出前 $m$ 小的数。 输入格式 第一行包含整数 $n$ 和 $m$。 第二行包含 $n$ 个整数,表示整数数列。 输出格式 共一行,包含 $m$ 个整数,表示整数数列中前 $m$ 小的数。 数据
阅读全文
摘要:##$AcWing$ $240$. 食物链 一、题目描述 动物王国中有三类动物 $A,B,C$,这三类动物的食物链构成了有趣的环形。 $A$ 吃 $B$,$B$ 吃 $C$,$C$ 吃 $A$。 现有 $N$ 个动物,以 $1∼N$ 编号。 每个动物都是 $A,B,C$ 中的一种,但是我们并不知道它
阅读全文
摘要:##$AcWing$ $837$. 连通块中点的数量 一、题目描述 给定一个包含 $n$ 个点(编号为 $1∼n$)的无向图,初始时图中没有边。 现在要进行 $m$ 个操作,操作共有三种: C a b,在点 a 和点 b 之间连一条边,a 和 b 可能相等; Q1 a b,询问点 a 和点 b 是否
阅读全文
摘要:##$AcWing$ $836$. 合并集合 一、题目描述 一共有 $n$ 个数,编号是 $1∼n$,最开始每个数各自在一个集合中。 现在要进行 $m$ 个操作,操作共有两种: M a b,将编号为 $a$ 和 $b$ 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a
阅读全文
摘要:##$AcWing$ $143$. 最大异或对 一、题目描述 在给定的 $N$ 个整数 $A_1,A_2……A_N$ 中选出两个进行 $xor$(异或)运算,得到的结果最大是多少? 输入格式 第一行输入一个整数 $N$。 第二行输入 $N$ 个整数 $A_1~A_N$。 输出格式 输出一个整数表示答
阅读全文
摘要:##$AcWing$ $835$. $Trie$字符串统计 一、题目描述 维护一个字符串集合,支持两种操作: I x 向集合中插入一个字符串 $x$; Q x 询问一个字符串在集合中出现了多少次。 共有 $N$ 个操作,所有输入的字符串总长度不超过 $10^5$,字符串仅包含小写英文字母。 输入格式
阅读全文
摘要:##$AcWing$ $831$. $KMP$字符串 参考博文:从头到尾彻底理解$KMP$ 一、题目描述 给定一个字符串 $S$,以及一个模式串 $P$,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模式串 $P$ 在字符串 $S$ 中多次作为子串出现。 求出模式串 $P$ 在字符串 $S$ 中
阅读全文
摘要:##$AcWing$ $154$ 滑动窗口 一、题目描述 有一个大小为$k$的滑动窗口,它从数组的最左边移动到最右边。 您只能在窗口中看到$k$个数字。 每次滑动窗口向右移动一个位置。 以下是一个例子: 该数组为$[1 \ \ 3\ \ -1\ \ -3\ \ 5\ \ 3\ \ 6\ \ 7]$,
阅读全文
摘要:AcWing题目传送门 洛谷题目传送门 一、题目描述 约翰有$N$头奶牛,编号为$1$到$N$。 现在这$N$头奶牛按编号从小到大的顺序站成了一排,其中奶牛 \(i\) 的身高为$H_i$。 现在,每头奶牛都向它的右侧望向那些编号较大的奶牛,对于奶牛 \(i\) 如果存在一头奶牛 \(j\) 满足
阅读全文
摘要:##$AcWing$ $830$.单调栈 一、题目描述 给定一个长度为 $N$ 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 $−1$。 输入格式 第一行包含整数 $N$,表示数列长度。 第二行包含 $N$ 个整数,表示整数数列。 输出格式 共一行,包含 $N$ 个整数,其中第 $i
阅读全文
摘要:##$AcWing$ $829$. 模拟队列 一、题目描述 实现一个队列,队列初始为空,支持四种操作: push x – 向队尾插入一个数 x; pop – 从队头弹出一个数; empty – 判断队列是否为空; query – 查询队头元素。 现在要对队列进行 $M$ 个操作,其中的每个操作 $3
阅读全文
摘要:##$AcWing$ $3302$. 表达式求值 一、题目描述 给定一个表达式,其中运算符仅包含 +,-,*,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。 注意: 数据保证给定的表达式合法。 题目保证符号 $-$只作为减号出现,不会作为负号出现,例如,$-1+2,(2+2)*(-(
阅读全文
摘要:##$AcWing$ $828$. 模拟栈 一、题目描述 实现一个栈,栈初始为空,支持四种操作: push x – 向栈顶插入一个数 x; pop – 从栈顶弹出一个数; empty – 判断栈是否为空; query – 查询栈顶元素。 现在要对栈进行 $M$ 个操作,其中的每个操作 $3$ 和操作
阅读全文
摘要:##$AcWing$ $827$. 双链表 一、题目描述 实现一个 双链表,双链表初始为空,支持 $5$ 种操作: 在最左侧插入一个数; 在最右侧插入一个数; 将第 $k$ 个插入的数删除; 在第 $k$ 个插入的数左侧插入一个数; 在第 $k$ 个插入的数右侧插入一个数 现在要对该链表进行 $M$
阅读全文
摘要:##$AcWing$ $826$. 单链表 一、题目描述 实现一个单链表,链表初始为空,支持三种操作: 向链表头插入一个数;删除第 $k$ 个插入的数后面的数; 在第 $k$ 个插入的数后插入一个数。 现在要对该链表进行 $M$ 次操作,进行完所有操作后,从头到尾输出整个链表。 注意:题目中第 $k
阅读全文
摘要:##$AcWing$ $803$. 区间合并 一、题目描述 给定 $n$ 个区间 [$l_i,r_i$],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:$[1,3]$ 和 $[2,6]$ 可以合并为一个区间 $[1,6]$。 输入格式 第一行包含整
阅读全文
摘要:\(AcWing\) \(802\). 区间和 一、题目描述 假定有一个无限长的数轴,数轴上每个坐标上的数都是 \(0\)。 现在,我们首先进行 \(n\) 次操作,每次操作将某一位置 \(x\) 上的数加 \(c\)。 接下来,进行 \(m\) 次询问,每个询问包含两个整数 \(l\) 和 \(r
阅读全文