首页 > 其他分享 >leetcode周赛432 T4(单调栈 + 单调队列)

leetcode周赛432 T4(单调栈 + 单调队列)

时间:2025-01-13 17:21:29浏览次数:1  
标签:周赛 操作数 队列 T4 端点 序列 单调 左端

一道练习单调栈 + 单调队列的好题

题目链接:problem

对于求合法子数组数量的题目,可以先考虑传统的枚举右端点,二分左端点的套路。此题用这种方法恰好可行,因为对于一个序列,左端增加一个数不会让操作数更少。因此对于固定右端点,合法的左端点一定是一段区间。

所以现在问题转化为:用双指针枚举子区间左右端点,滑动窗口累计操作数。而计算操作数就需要使用数据结构来实时维护

序列变化只由两种操作触发:

  1. 枚举右端点时,右端点右移时,子数组右端多了一个数
  2. 左端点右移时,子数组左端少了一个数

对于\(1\) : 当原序列右端多了一个数 \(x\) 时,其他元素的贡献是不变的,只有刚加入的数会产生新的贡献:即为原序列内最大值\(mx - x\)。而滑动窗口的最大值可以用单调队列来维护。

对于\(2\) : 当原序列左端少了一个数 \(x\) 时,该数的移除会使得后面所有数的贡献均发生变化。这里是用单调栈建树的方式完成的,很冷门与抽象。还是直接看灵神题解吧qwq...

链接:sol

标签:周赛,操作数,队列,T4,端点,序列,单调,左端
From: https://www.cnblogs.com/jjjxs/p/18667427

相关文章

  • 【牛客训练记录】牛客周赛 Round 76
    训练情况赛后反思D题被卡常了,我知道是优先队列的问题,但是一直有一个点过不去,E题疑似二分,但是我不会处理快速幂溢出的问题A题工作日每天\(3\)题,求\(x\)天一共有几周,一周有五个工作日,剩下不足\(7\)天的分类讨论。#include<bits/stdc++.h>//#defineintlonglong#de......
  • 最大矩形(单调栈)
    题目链接:https://leetcode.cn/problems/maximal-rectangle/description/题意:给定一个只有0和1的矩阵,试求只包含1的长方形的最大面积思路:每行将矩阵压缩成一个高度数组,转化为求矩形最大面积classSolution{public:intmaximalRectangle(vector<vector<char>>&matrix)......
  • 子数组最小值(单调栈)
    题目链接:https://leetcode.cn/problems/sum-of-subarray-minimums/题意:给定一个数组,让你求子数组最小值的和,复杂度O(N)思路:单调栈(获得每个位置左边比它小且离它最近的数,右边比它小且离它最近的数,那么在这之间它本身就是区间最小值)classSolution{public:intsumSubarr......
  • D. [CSP-J二十连测第九套 ] --T4--计数(count)
    D.[CSP-J二十连测第九套]--T4--计数(count)这道题是一道很好的dp。假设留下的序列是\(b\),首先有个4个性质:最后剩下的是原序列\(a\)的子序列。对于\(b_1\),他在原序列中假设位置为\(x\),那么从\(a_1\)\(a_x\)的最小值必须是\(b_1\)。对于\(b_n\),他在原序列中假设位......
  • 每日温度(单调栈)
    题目链接:https://leetcode.cn/problems/daily-temperatures/题意:给你一个每日气温数组,请你确定每个位置右边是否比自己大的元素,如果无,返回0。否则,返回两者下标之差思路:单调栈(这就好似给了数组中每个位置做波峰或波谷的机会)(ps:单调栈一定存的是下标i)classSolution{public......
  • 单调栈板子
    单调栈用于求解数组每个位置上左边/右边离自己最近的且严格小于/大于自己位置上的数的位置时间复杂度O(N)(每个元素下标进栈一次出栈一次)元素下标能表示的含义比元素本身要多(ps:注意数组长度,过大就要开到全局变量中,否则异常退出orz)方法(求每个位置上离自己最近且严格小于自己......
  • 迭代概念详解-ChatGPT4o作答
    迭代的详细论述迭代(Iteration)是数学、计算机科学和工程学中的核心概念,用于描述通过不断重复某一过程以接近目标或解的问题解决方法。迭代是一种通用的方法论,从求解方程、优化问题到编程逻辑,迭代无处不在。以下从定义、数学基础、分类、在计算机科学中的应用、优化中的作......
  • 随机性的详细论述-ChatGPT4o作答
    随机性的详细论述**随机性(Randomness)**是数学、统计学、物理学和计算机科学中的一个重要概念,描述了事件或现象的不确定性。随机性广泛存在于自然界和人工系统中,是描述和分析复杂系统的重要工具之一。本文将从随机性的定义、分类、数学基础、物理来源、应用领域以及哲学思考......
  • 时序差分(Temporal Difference, TD)学习的详细介绍-ChatGPT4o作答
    时序差分(TemporalDifference,TD)学习的详细介绍时序差分(TemporalDifference,TD)是一种强化学习中重要的价值函数估计方法,结合了动态规划(DynamicProgramming)和蒙特卡洛方法(MonteCarlo)的优点。它通过从经验中直接学习预测值,而不需要完整的回报序列,能够高效地处理马尔科夫......
  • linux—— 在宿主机上查看生成的ext4格式镜像文件内容
    在制作完成ext4(其他格式的也一样)格式的镜像后,想查看镜像文件的内容时,可以利用以下方法:1、在mnt路径下创建roots,这一步随便挂载到一个目录下即可sudomkdir/mnt/roots2、使用以下命令挂载sudomout-olooproots.ext4/mnt/rootsroot.ext4要挂载的文件系统/mnt/roots创建......