
双指针
文章平均质量分 58
分享关于双指针的题解
MangataTS
一个爱折腾的Coder
展开
-
算法小讲堂之你真的会双指针吗?
双指针又被称为 **尺取法** 双指针是一种简单而又灵活的技巧和思想,并不是一种具体的算法,单独使用可以轻松解决一些特定问题,和其他算法结合也能发挥多样的用处。原创 2022-03-07 16:11:44 · 963 阅读 · 6 评论 -
R(双指针)
题目链接 https://ac.nowcoder.com/acm/contest/23479/A 题面 思路 题目中要求解的是子串至少包含k个R字符且不能包含P字符的数量,注意子串和子序列的区别,因为子串不能包含P字符,我们不难想到这个P就相当于把字符串分割成了两部分(因为子串要求连续),对于一个不包含P的字符串我们要求这样的子串数量,很容易联想到双指针,我们会发现当我们第一次匹配成功后,后面所有的情况都满足条件也就是每次匹配成功我们就处理完以当前i开头的所有子串,举个栗子:BBBBR,当我们第一次匹配成原创 2022-02-09 10:51:41 · 254 阅读 · 0 评论 -
AcWing 1922. 懒惰的牛(前缀和 or 双指针)
思路 因为数据范围很小,所以我们可以直接用前缀和的方法做,当然也可以用尺举法,后面补上 前缀和 因为x的数据范围就是1e6,那么我们直接把对应地点的值加上去就好了 #include<bits/stdc++.h> using namespace std; #define ll long long #define mod 1000000009 #define endl "\n" #define PII pair<int,int> int dx[4]={0,-1,0,1},dy[4]={原创 2022-02-06 20:47:37 · 215 阅读 · 0 评论 -
AcWing 1934. 贝茜放慢脚步(二路归并)
题目链接 https://www.acwing.com/problem/content/description/1936/ 思路 题目的标签是二路归并,其实就是贪心,可以对比我们之前学习归并算法那里,我们现在有两个参照轴,时间轴和坐标轴,我们现在就是需要将这两个轴上发生的事件(减速)有序合并起来,我们可以计算当前哪个事件先发生,先发生的就先执行,也就是归并排序的归操作,将左右区间有序合并,所以我们先对T和D排序,然后逐步选择最先发生的事件归并即可 代码 #include<bits/stdc++.h&g原创 2022-02-05 23:51:23 · 448 阅读 · 0 评论 -
智乃的密码(双指针)
题目连接 https://ac.nowcoder.com/acm/contest/23478/I 题面 思路 我们通过双指针枚举一下可行的区间,那么对于这个可行区间,的所有右边界在[loc,start+R][loc,start+R][loc,start+R]范围内的字符串都满足那么我们直接每找到一个可行字符串,就把后面的贡献加上就能在线性时间复杂度计算出结果了,详情请看代码 代码 #include<bits/stdc++.h> using namespace std; //----------原创 2022-02-05 16:07:18 · 642 阅读 · 0 评论