欢迎光临散文网 会员登陆 & 注册

复盘|第284场周赛

2022-11-03 21:30 作者:UCLmsc  | 我要投稿

找出数组中的所有 K 近邻下标

【枚举】枚举所有下标对,判断是否满足条件。res维护所有k紧邻下标,先递增顺序枚举i,在枚举j,i被添加过就break防止重复添加。

【一次遍历】r表示当前未被判断过是否是k紧邻下标的最小下标,每次更新闭区间[max(0,j−k),min(n−1,j+k)] 内的所有下标。

统计可以提取的工件

【哈希表】每个工件最多覆盖4个单元格,dig存哈希表,遍历每个工件的覆盖格子,但凡有格子没被挖过则false,必须全被dig过才true。

K 次操作后最大化顶端元素

【分类讨论】分类讨论栈顶能否存最大值。n = len(nums),n=1,k奇数栈空,k偶数nums[0],i = 0,奇偶都能使得nums[0]为栈顶,0 < i < k - 1也可以, i = k - 1只能删nums[i - 1],i =k 能删前k个, i > k则nums[i]前无法删。

得到要求路径的最小带权子图

【三次最短路】如果只有两个点就是两点间的最短路,三个点就是枚举三条路最短路的交点,边权和最小的子图呈现三岔口的「Y型」。枚举三岔口焦点x,求src1和src2到x的最短路(两次Dijkstra),以及x到dest的最短路(线所有边反向,再dest到c,一次Dijkstra),累加三条最短路的和,即为三岔口在x处子图的边权和,枚举所有x,最小子图边权和即为答案。


复盘|第284场周赛的评论 (共 条)

分享到微博请遵守国家法律