• 2024-11-21
    前言先进后出STLstact跟其他的STL很像,不多说了#include<bits/stdc++.h>usingnamespacestd;intmain(){stack<int>s;s.push(123);s.push(321);s.push(128);cout<<s.top()<<endl;s.pop();cout<<s.top()&
  • 2024-11-21轻质感UI界面肯定会流行的,简约不单调,真实又不复杂。
    轻质感UI界面有着独特的魅力,它代表着未来设计的趋势。这种界面以简约为核心,摒弃了繁琐的装饰元素,却丝毫不会让用户感到单调。通过巧妙运用色彩的深浅变化、柔和的光影效果和简洁的几何图形,营造出一种清新自然又时尚的氛围。比如,使用淡淡的渐变色来区分不同功能区域,用简约的
  • 2024-11-19Cut the Sequence
    CuttheSequenceP10977CuttheSequence前言单调队列优化dp的好题,思维难度大细节多。因为觉得自己看不懂其他题解,在看完y总的讲解后豁然开朗,所以写这篇题解来巩固一下。包括完整的细节分析和思考过程,或许很多大佬都不需要qwq。叠甲完毕,下面开始正文。分析先考虑无解的
  • 2024-11-16P1823
    [COI2007]Patrik音乐会的等待题目描述\(n\)个人正在排队进入一个音乐会。人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人。队列中任意两个人\(a\)和\(b\),如果他们是相邻或他们之间没有人比\(a\)或\(b\)高,那么他们是可以互相看得见的。写一个程序计算
  • 2024-11-15代码随想录算法训练营day47| 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II
    学习资料:https://programmercarl.com/0739.每日温度.html#算法公开课单调栈:用数组模拟单调栈,今天的题中,栈中元素都保存的索引值基本思路:将新元素和栈顶索引对应值比较,如果要保持单调递增,则需要新元素不大于栈顶索引对应值;若满足就加入新元素索引到栈中;若不满足,就根据具体题意看
  • 2024-11-13【算法学习】单调队列优化dp
    前言这已经是很基础很模板化的优化了,我们可以理解为用贪心的思路去掉了永远不可能用到的状态,通常用于长度固定是个区间、最大值且满足单调性的题目。如果一个选手比你小,还比你强,你就永远也打不过他了。这很残酷但这也是单调队列的思想,虽然现实情况比较多变。P3572[POI2014]PT
  • 2024-11-11关于分治法左右区间单调遍历应该如何设计
    阅读以下文章,首先至少要求通过一道分治法的题目或听过一道该类型的讲解。对于分治的题目,想必你应该知道,通常我们是对于一个区间拆分两个部分,而最小子问题通常是只包含一个元素的区间数组。为了后续方便处理更大范围的区间,通常在处理该小区间后,我们会将其区间内元素排序,例
  • 2024-11-11决策单调性 dp
    重修!updon09/14/24:狗屁模拟赛督促我来更新这篇博。以下讨论最小化问题。对于\(n\timesn\)的矩阵,有:子矩阵\(A_{[i_1,i_2,..,i_k][j_1,j_2,..,j_\ell]}\)为矩阵\(A\)取出\(i_1,i_2,..,i_k\)行和\(j_1,j_2,..,j_\ell\)组成的矩阵。其中当序列\(i,j\)元素连续时
  • 2024-11-11郝玩的数据结构1——单调栈,单调队列
    栈和队列是很郝咏的Stl,那么,我们手搓——用数组模拟故事背景:辣鸡老o在学单调栈&单调队列——我栈top为栈顶,易得出出栈即top--,入栈++top=(ovo)......——完全不会讲,那么上马:点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintN=114514;intstk[N],top=0;
  • 2024-11-10单调栈基础模板
    #include<bits/stdc++.h>usingnamespacestd;constintN=1000005;intn,ansl[N],ansr[N],a[N];intf[N],r,x;intmain(){cin>>n;for(inti=0;i<n;i++)cin>>a[i],ansl[i]=ansr[i]=-1;for(inti=0;i<n;i++){
  • 2024-11-10ABC372D ABC379F 题解 单调栈二分
    ABC372DABC379F题解单调栈二分一直觉得AT上面学到的东西比CF要多一些,无意捧一踩一,但可能是我太菜的原因,毕竟ABC的题目普遍要比Div.2简单一些。好多次碰到这个单调栈里面二分的trick了,所以写一篇来总结一下。ABC372D形象地给定一系列Buildings的高度\(h\),保证每个
  • 2024-11-10P2893 [USACO08FEB] Making the Grade G 题目分析
    P2893[USACO08FEB]MakingtheGradeG题目分析题目链接分析题目性质不难解析出题目中的序列\(B\)有“单调不下降”和“单调不上升”两种情况,不难想到分两种情况讨论答案即可。有一个性质:在满足答案最小化的情况,一定存在一种方案使得\(B\)中的数字一定在\(A\)中。
  • 2024-11-10全零子矩形计数问题
    经典问题,但是我为什么不会呢?????题意给定一张\(n\timesm\)的01矩阵,求出有多少个子矩阵使得子矩阵内没有1。\(n,m\le10^3\)分析考虑枚举每一行,计算以该行上每个点为右下角的合法子矩形个数\(\sumsum_{i,j}\),也就是说,计算左上角的个数使得左上角和该右下角形成的子矩形不
  • 2024-11-10单调队列笔记
    单调队列笔记双端队列deque维护一个严格单调变化的组,可以称为一个单调队列单调队列因为可以直接对组的两端进行操作,所以可以有效的降低时间复杂度用单调队列来解决问题,一般是需要得到的某个范围内的最小值或最大值这里以一道经典的单调队列的题目为例:题目描述有一个长为\(
  • 2024-11-08[ZR] WI
    source:zr二十联测day16B题意给定\(n\)个数\(a_i\)。每次你需要花费\(c\)在剩余的数中均匀随机获得一个数,你可以选择留下这个数,此时游戏结束且得分为该数值;否则将这个数扔掉(但不放回),然后游戏继续。求最大期望。要求时间复杂度\(O(n)\)。分析将\(a_i\)降序排序。
  • 2024-11-07方法及其优化技巧总结
    公式题:区间贡献拆为点贡献。公式全部拆开求和算值。和积和区间最大值满足单调,排序后计算。max动态规划:先打暴力再优化。看数据范围猜测状态。前i个选了j个.多个选择考虑背包,搜索:搜素题大多是剪纸多,加记忆化,分类讨论都需要+1-1*2看到数据范围非常小无非就是高复杂度的
  • 2024-11-06【力扣打卡系列】单调栈
    坚持按题型打卡&刷&梳理力扣算法题系列,语言为go,Day20单调栈题目描述解题思路单调栈后进先出记录的数据加在最上面丢掉数据也先从最上面开始单调性记录t[i]之前会先把所有小于等于t[i]的数据丢掉,不可能出现上面大下面小的情况倒着遍历,while遍历,
  • 2024-11-05单调栈笔记
    单调栈笔记单调栈,顾名思义,就是把元素按照严格单调的顺序存在栈中(从「栈顶」到「栈底」)可以加速查找数组中满足特定条件的数的过程,例如:寻找左侧第一个比当前元素大的元素寻找左侧第一个比当前元素小的元素寻找右侧第一个比当前元素大的元素寻找右侧第一个比当前元素小的元素
  • 2024-11-02数据结构优化动态规划
    类似于单调队列优化,根据转移方程的性质选择合适的优化方案线段树应用场景:方程转移为一个区间且无单调性[ARC085F]NRE先按左端点排序,考虑前\(i\)个区间对答案的贡献,很容易写出\(O(n^2)\)的方程考虑到只会有两类转移点:\(r[j]<l[i]\)或\(l[i]\ler[j]\ler[j]\)(\(r[j]>r[i]\)转
  • 2024-11-02决策单调优化动态规划
    四边形不等式决策单调即对于dp方程\(f[i]=min/max(f[j]+w(j+1,i))\),设\(f[i]\)从\(pre[i]\)转移,有$\forall\i>j,pre[i]\lepre[j]$写出\(pre[]\)就是大概这种效果:111111224444444446666可以观察到决策单增,那么对于有序表,可以想到利用二分或分治等\(O(logn)\)的算法来优化
  • 2024-10-31决策单调性优化 DP
    前言本文将介绍决策单调性优化DP的相关内容。持续更新修正,如有差错请指出。1.四边形不等式优化1.1四边形不等式与决策单调性四边形不等式:如果对于任意的\(a\leb\lec\led\)均成立\[w(a,d)+w(b,c)\gew(a,c)+w(b,d)\]则称代价函数\(w\)满足四边形不等式。
  • 2024-10-31LUOGU_进阶算法思想
    进阶算法思想单调数据结构单调队列,单调栈都是均摊\(O(1)\),是不支持撤销的,只能按照正常过程加入。单调栈求最近的大于小于其的值CF280BMaximumXorSecondary:枚举最大值,次大值并不容易确定,但枚举次大值的位置,这样最大值就是其左右两边第一个比其大的值,用单调栈可求出。其实就
  • 2024-10-31456. 132 模式 Golang实现
    题目描述:给你一个整数数组nums,数组中共有n个整数。132模式的子序列由三个整数nums[i]、nums[j]和nums[k]组成,并同时满足:i<j<k和nums[i]<nums[k]<nums[j]。如果nums中存在132模式的子序列,返回true;否则,返回false。示例3:输入:nums=[-1,3,2,0]
  • 2024-10-30闲话 10.30
    别样的丁真让我讲T2,所以提前写点东西出来。诗人小G首先根据题意,比较好写的是\(\mathcal{O(n^2)}\)的转移:\[f_i=\min_{j=0}^{i-1}\f_{j}+abs(sum_i-sum_j-L-1)^p\]其中\(sum\)为句子长度的前缀和。发现可优化的点是后面一坨柿子,我们把它记为\(G_{i,j}=abs(sum_i-sum_j-