随笔分类 -  双指针

摘要:题目:King of Range 题意:给出一个序列,问其存在多少个子序列(子序列肯定连续~)满足子序列中最大值与最小值的差大于k。 思路:ST表预处理 + 双指针维护区间。 解析:以下用$maxv, minv$表示该区间最大值和最小值,假设当遍历到区间[l, r - 1]时,$maxv - min 阅读全文
posted @ 2021-08-13 20:54 ~K2MnO4 阅读(70) 评论(0) 推荐(0)
摘要:题目:Integers Have Friends 题意:给出一个序列ai,规定一种友好组合为组合中所有数对m(m >= 2)取余的结果相同,问从该序列中寻找这样友好组合的子串,长度最大能为多少。 思路:ST表预处理区间gcd,通过二分枚举长度/双指针的方法找最大长度符合要求的子串。 解析:根据题意, 阅读全文
posted @ 2021-08-05 17:10 ~K2MnO4 阅读(148) 评论(0) 推荐(0)
摘要:题目:Average 题意:给出两个序列a、b,定义一个矩阵w,w[i][j] = a[i] + b[j],求该矩阵中宽至少为x,长至少为y的子矩阵元素之和的平均值最大能为多少。 思路:二分 + 前缀和(与最佳牛围栏相似) 解析:经过公式推导可得: \[ \begin{align*} Avg &= 阅读全文
posted @ 2021-07-28 17:54 ~K2MnO4 阅读(110) 评论(0) 推荐(0)
摘要:题目: 题意:给出两段字符串分别为s、t,将t与s的子串进行匹配,求出所有匹配成功的s子串中所有si+1与si的距离最大值. 思路:贪心 + 双指针 解析:这种贪心匹配之前还未接触过,所以做个笔记,此题贪心策略是从左往右进行扫描,找出t中每一个字符第一次在s中出现的位置,并记录到l数组中,接着从右往 阅读全文
posted @ 2021-03-14 22:15 ~K2MnO4 阅读(202) 评论(0) 推荐(0)