
双指针
文章平均质量分 61
双指针
2301_78981471
这个作者很懒,什么都没留下…
展开
-
AcWing 2816. 判断子序列
【代码】AcWing 2816. 判断子序列。原创 2023-11-29 10:01:45 · 450 阅读 · 0 评论 -
B3691
会超时,不能双重循环遍历对比所有元素,所以想到利用桶将相同的数字找出来,然后另开一个数组对下标进行标记,最后直接利用标记数组来计算有多少段。所以要寻找第i位被标记但是第i - 1位没被标记的元素,避免多数,然后计数器++;所以标记数组从1开始计数并且标记第0位,防止多计数和数组越界。原创 2023-10-10 19:52:45 · 94 阅读 · 1 评论 -
P7714 「EZEC-10」排列排序
位开始往后寻找需要排序的右边界;边界条件是:从第i位开始的元素最大值等于右边界的索引值,即。,所以应该分开讨论,最好用while,用for循环时应该注意,for的最后操作是。本题意为排序所要的最小代价,即需要排序的各最小区间的长度的和。1.对这种数字与下标相关的题目,应该从1开始存数、计数,而非0。在向右途中不断更新最大值。首先从头遍历,找到第一个非顺序的元素,即。时,i继续向右寻找不符合的元素,即。然后设立另一个指针j,从。原创 2023-10-10 22:03:08 · 128 阅读 · 0 评论 -
P1102 A-B 数对
找到后计数器加上序列长度。那如果找不到符合条件的A怎么办?若都不符合条件,那么。,注意到,给的数据可能会有重复的数字,所以我们要找的是。的数对数,利用双指针算法。指向我们要找的序列的右端点,接着定义指针。指向第一个数,然后定义指针。相似,去找序列的左端点,直到。从第一个数开始,定义。原创 2023-10-11 12:31:04 · 47 阅读 · 0 评论 -
P1638 逛画展
寻找包含所有画师作品的最短序列长度,序列中同一画师可能重复出现,且选取最优解下左端点最小的序列。越界时退出,最后判断如果是画师满员了,则对区间长度进行比较,接着更新值。位画师的作品扔进去,如果这个画师之前未出现过,即。从左往右顺序遍历,然后从序列中把第。用来记录序列中某画师的作品数目。代表序列中已有的画师数量,,那么计数器++,当。原创 2023-10-11 21:58:31 · 116 阅读 · 0 评论 -
P3143 [USACO16OPEN] Diamond Collector S
我们在第二次双指针寻左端点时,在找到第一个左端点时,让第二个指针直接从第一个序列的右端点的后一个元素处开始,这样的话两个序列必不可能重合,直接序列长度相加即可。为记录点,记录序列长度),为了不重叠,再用一次双指针,分别寻找两个序列的两个左端点,最后判断是否重合,计算输出。既然要寻找序列差值给定的序列,我们先排序,再用双指针找各序列的左右端点,然后记录最大值,分给。此方法可以过70%的数据,最后30%会TLE,原因是最后双指针寻找符合条件的序列时超时。的话,当两个序列不首尾相连,我们又会少记一个数,原创 2023-10-13 09:36:32 · 147 阅读 · 0 评论 -
P8783 [蓝桥杯 2022 省 B] 统计子矩阵
我们依然枚举上下边界,然后用一维前缀和处理单列的矩阵,这样一个二维的数据统计就变为了一维,接着用双指针处理一维的序列(即处理下边界的一维数组),先让右指针。加上最大矩阵的各子矩阵数目总和(一个集合有多少子集合问题,拎出来一个点然后分别与其他点进行匹配,有。描述一个矩阵需要找到矩阵四个角的位置,我们直接用暴力枚举(某一点的。,接着把矩阵里面的数据全部加起来,比较计数。此方法AC(抄的y总思路,他太强了,我是菜逼)。,那么最右位应该是合法矩阵的右边界。,但是依然要枚举四次。),走的每一步如果合法,答案。原创 2023-10-13 12:11:15 · 63 阅读 · 0 评论 -
P8708 [蓝桥杯 2020 省 A1] 整数小拼接
拼接数字比大小,很自然地想到先排序再双指针找区间端点。(左端点l,右端点r)蓝桥杯 2020 第一轮省赛 A 组 H 题。请你计算有多少种拼法满足拼出的整数小于等于。一前一后拼成一个新的整数。你可以从中选出两个数。原创 2023-10-23 17:23:59 · 146 阅读 · 0 评论