摘要: 题目 给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。 数组下标从 0 开始。 请你求出满足 A[i] + B[j] = x 的数对 (i, j)。 数据保证有唯一解。 输入格式 第一行包含三个整数 n,m,x,分别表示 A 的长度,B 的长度以及目标值 x。 第二行包含 n 个整数,表 阅读全文
posted @ 2023-02-19 19:00 Cheng_Mao 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个长度为 n 的整数序列 a_1,a_2,…,a_n 以及一个长度为 m 的整数序列 b_1,b_2,…,b_m。 请你判断 a 序列是否为 b 序列的子序列。 子序列指序列的一部分项按原有次序排列而得的序列,例如序列 {a_1,a_3,a_5} 是序列 {a_1,a_2,a_3,a_4 阅读全文
posted @ 2023-02-19 15:02 Cheng_Mao 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题目 给定一个由 n 个小写字母构成的字符串。 现在,需要删掉其中的一些字母,使得字符串中不存在连续三个或三个以上的 x。 请问,最少需要删掉多少个字母? 如果字符串本来就不存在连续的三个或三个以上 x,则无需删掉任何字母。 输入格式 第一行包含整数 n。 第二行包含一个长度为 n 的由小写字母构成 阅读全文
posted @ 2023-02-16 21:32 Cheng_Mao 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 分析 设答案为ans,那么大于ans,肯定不成立,小于ans成立,这符合二分答案的特点 然后使用unordered_set和substr进行查重 substr:第一个参数为开始项,第二个参数为要截取的长度 代码 #include "iostream" #include "string 阅读全文
posted @ 2023-02-15 22:09 Cheng_Mao 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 原题链接 分析 前缀和和差分算法,能够用线性的时间解决问题,将时间复杂度降为O(n) 比如这道题,如果暴力的话,每次进行ai操作的时候都要进行循环,效率很低 一般题里只要说将某范围内测数据全部改变,就需要前缀和/差分算法 过程 有一个b数组,称为差分数组,对v数组的操作结果都存在b数组里 每次进行新 阅读全文
posted @ 2023-02-15 21:11 Cheng_Mao 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 分析 首先将二维a数组差分为二维b数组 然后对差分数组进行操作 图为操作流程 所要操作的区域为红色 使红色左上角加c,导致a数组灰色区域加c 使绿色左上角减c,导致a数组绿色区域减c 使橙色左上角减c,导致a数组橙色区域减c 最后减去黑色左上角,导致a数组黑色区域减c 代码 #inc 阅读全文
posted @ 2023-02-13 00:18 Cheng_Mao 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 题目 输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l, r, c,表示将序列中 [l, r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。 输入格式 第一行包含两个整数 n 和 m。 第二行包含 n 个整数,表示整数序列。 接下来 m 行,每行包含三个 阅读全文
posted @ 2023-02-12 20:00 Cheng_Mao 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 题目 输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x_1, y_1, x_2, y_2,表示一个子矩阵的左上角坐标和右下角坐标 对于每个询问输出子矩阵中所有数的和。 输入格式 第一行包含三个整数 n,m,q。 接下来 n 行,每行包含 m 个整数,表示整数矩阵。 接 阅读全文
posted @ 2023-02-12 19:18 Cheng_Mao 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 解析 存储方式: 可以使用一个数组进行前缀求和(本题解) 可以使用两个数组,一个保存原数据,一个保存前缀和 注意事项: 前缀和数组存的数据必须从下标1开始,因为当左节点为数组首项时,此时范围内的和其实 就是S[r],但是代码中写的是S[r]-S[l],此时l=0,s[l]是有值的,结 阅读全文
posted @ 2023-02-12 17:03 Cheng_Mao 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 原题链接 题解 C++存在一种pair类型,并且可以指定first/second的数据类型,所以可以使用它来代替只有两个元素的结构体 利用sort对数据进行排序,将取水时间从小到大排序 为什么要从小到大,简单试一下就可以试出来,比如 当顺序是 10 20 30 ,总花费时间是70秒,而 30 20 阅读全文
posted @ 2023-02-11 14:44 Cheng_Mao 阅读(32) 评论(0) 推荐(0) 编辑