摘要: 1、Trie树 以AcWing.835为例, 维护一个字符串集合,支持两种操作: “I x”向集合中插入一个字符串x;“Q x”询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过10^5,字符串仅包含小写英文字母。 输入格式第一行包含整数N,表示操作数。 接下来N行,每行包含 阅读全文
posted @ 2023-10-29 10:29 karinto 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 1、KMP 以AcWing.831为例, 给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模板串P在模式串S中多次作为子串出现。 求出模板串P在模式串S中所有出现的位置的起始下标。 输入格式第一行输入整数N,表示字符串P的长度。 第二行输入字符串P。 第三行输入 阅读全文
posted @ 2023-10-29 10:27 karinto 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 1、单调栈 以AcWing.830为例, 给定一个长度为N的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出−1。 输入格式第一行包含整数N,表示数列长度。 第二行包含N个整数,表示整数数列。 输出格式共一行,包含N个整数,其中第i个数表示第i个数的左边第一个比它小的数,如果不存在则输出− 阅读全文
posted @ 2023-10-10 17:08 karinto 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 1、单链表(静态链表) 以AcWing.826为例,题目要求如下: 实现一个单链表,链表初始为空,支持三种操作: 向链表头插入一个数;删除第k个插入的数后面的数; 在第k个插入的数后插入一个数。 现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。 注意: 题目中第k个插入的数并不是 阅读全文
posted @ 2023-10-02 16:43 karinto 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 1、区间合并 以AcWing.803为例,题目要求如下: 给定n个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6]可以合并为一个区间 [1,6]。 输入格式第一行包含整数 n。 接下来 n 行,每行包含 阅读全文
posted @ 2023-10-01 16:16 karinto 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 1、离散化 值域大而数值稀疏的题目,通常先将需要操作的数映射到一个数组中,再做后续操作,可以大大减少时间复杂度。 以AcWing.802为例,是一个典型的前缀和问题,但问题在于,若仅仅使用前缀和算法,时间复杂度会很高,因此需要先做离散化映射。 题目要求如下: 假定有一个无限长的数轴,数轴上每个坐标上 阅读全文
posted @ 2023-09-28 21:36 karinto 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 1、以AcWing.801为例,题目要求如下: 给定一个长度为n的数列,请你求出数列中每个数的二进制表示中1的个数。 输入格式第一行包含整数n。 第二行包含n个整数,表示整个数列。 输出格式共一行,包含n个整数,其中的第i个数表示数列中的第i个数的二进制表示中1的个数。 数据范围1≤n≤100000 阅读全文
posted @ 2023-09-26 10:01 karinto 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1、单队列 例1:将字符串以换行符间隔开 输入一串字符串,字符串有多个由单个逗号隔开的单词,任务是需要把单词间隔开,每个单词换行输出。 输入样例abc def ghi 输出样例abc def ghi #include <iostream> using namespace std; const int 阅读全文
posted @ 2023-09-25 11:56 karinto 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 1、一维差分 首先要知道,差分是前缀和的逆运算, a1 a2 …… an 前缀和b1 b2 …… bn 差分 以AcWing.797为例,题目要求如下: 输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l, r, c ,表示将序列中 [l,r] 之间的每个数加上 c 阅读全文
posted @ 2023-09-21 21:20 karinto 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1、一维前缀和 以AcWing.795为例,题目要求如下: 输入一个长度为N的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。 输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一 阅读全文
posted @ 2023-09-21 21:16 karinto 阅读(30) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示