• 2024-04-16P9753 [CSP-S 2023] 消消乐
    好题,该说不说想了半天manacher结果是假的题目链接:P9753[CSP-S2023]消消乐回归正题对于这道题我们应该怎么做呢?难点其实是在于我们如何在O(1)的时间内判断该字符是否符合于是呢我们稍稍的思考一下就可以得到一个事实:xAAxxxAxxA......形如这样的字符串呢一定是合法的
  • 2024-03-23【模板】单调队列 滑动窗口最值
    LuoguP1886滑动队列/单调队列有一个长为 n 的序列 a,以及一个大小为 k 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 以求最小值为例f[i]表示以i结尾的窗口中的最小值f[i]=min(a[j]),i-k+1<=j<=i暴力算法O(n^2)
  • 2024-02-21单调队列、单调栈
    单调栈什么是单调栈单调栈是指一个栈内部的元素具有严格单调性的一种数据结构,分为单调递增栈和单调递减栈。单调栈的性质1.满足栈底到栈顶的元素具有严格单调性。2.满足栈的先进后出特性,越靠近栈顶的元素越先出栈元素进栈过程对于一个单调递减栈来说,若当前进栈的元素为a,如果a
  • 2024-01-26C转C++速成浅入浅出系列——STL之queue
    本系列为应付考研复试用,知识浅入浅出,很多地方不深究细节原理;如有谬误,欢迎大家指出。queue【queue:队伍,队列】(学过数据结构的熟的不能再熟了吧)理解为队列。特点是①先入先出②只能对队伍的队首进行出队操作,对队伍的队尾进行入队操作。需提供头文件#include<queue>由于队列的
  • 2023-12-12数据结构---队列
    队列(Queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。这种操作方式通常被称为FIFO(FirstInFirstOut,先进先出)。队列中的插入操作也被称为入队(enqueue),而删除操作则被称为出队(dequeue)。队列中的元素只能从一端(称为队头)添加
  • 2023-12-08队列
    队列是先进先出(FIFO,First-In-First-Out)的线性表。队列只允许在后端(称为back,rear,tail)进行插入操作,在前端(称为front,head)进行删除操作。队列的操作入队:在队尾(称为back)进行插入或添加操作;出队:在队头(称为front)进行删除操作。数组模拟队列intq[SIZE],front=1,back=0;  
  • 2023-10-15队列queue
    队列queue(包含头文件queue)首先说说什么是queue,queue就像是一根管子,数据可以从管子尾部进入,然后从头部出来,不能倒车从尾部出来,并且数据只能从尾部进入,不能从头部进入1.队列的定义queue<队列内输入的数据类型,队列的容器类型>变量名;queue<int>s;//创建一个类型为int变量名
  • 2023-10-120-1 bfs
    问题引入对于边权为0/1的图\(G=(V,E)\),求解其最短路。(注意这里的1并不一定就是1,只是反映有无权值)ps.一下称该类图为0-1图。求解一般图一般有Dijkstra和SPFA。但对于0-1图这样特殊的图,\(O(m\logm)\)的Dijkstra就显的冗余了。问题主要在于,每次dis的更新
  • 2023-09-210-1 BFS
    前言:做这道题发现dij过不了,意识到自己不会0-1BFS,遂查,发现网上的解释很多都不清楚,oiwiki好像没讲,自己证明了一下。算法过程:用于求边权为\(0\)或\(1\)的图的最短路。方法就是把dij的单调队列换成一个deque,每次更新如果用边权为\(0\)的边,把新的点放到队首,反之放到队尾,
  • 2023-08-17队列的内置模块(deque)--双向队列
    博客地址:https://www.cnblogs.com/zylyehuo/#-*-coding:utf-8-*-fromcollectionsimportdequeq=deque([1,2,3,4,5],5)q.append(6)#队尾进队print(q.popleft())#队首出队#用于双向队列q.appendleft(1)#队首进队q.pop()#队尾出队
  • 2023-08-03单调队列
    一个支持在队尾插入,队头和队尾删除的队列,整个队列呈单调性如果要求最大值则维护一个递减的单调队列,最小值则递增用deque写很方便(前几天用数组模拟队列代码调不出bug难受死了)例题 P1886滑动窗口思路:用一个deque,存点的序号(用于判断是否过期)和点的数字。每次新增加一个元素,都
  • 2023-07-17day2 栈、队列
    功能受限的表结构:  栈:  队列:    只有两个口来进出数据,一个专门进入数据,另一个专门出数据,先进先出,FIFO表        顺序队列:      1、存储元素的连续内存的首地址      2、容量:      3、队头位置:出队
  • 2023-04-16P3205 [HNOI2010]合唱队
    P3205[HNOI2010]合唱队区间DP——取一端思:根据题意我们发现,每次排队的时候,会出现两种情况当前排入的人(即初始队列最后一人)比初始队列中前一个人矮,排到最左边当前排入的人(同上)比初始队列中前一个人高,排到最右边可从初始队列最后一人切入。设置状态:\(f[l][r][0/1]\)
  • 2023-04-14STL容器之queue
    是什么循环队列,FIFO先进先出怎么用初始化//C11deque<int>deq{1,2,3,4,5};//拷贝构造,可以拷贝dequequeue<int>que(deq);//100个5queue<int>que2(100,5);//运算符重载que2=que;操作//队尾添加元素(这里只有一个出入口,就无所谓前后了也不用什么push_ba
  • 2023-03-13单调队列
       重点:将队列中没有用的元素删除。如果在窗口中存在i<j,ai>aj,那么在窗口向右移动的过程中,只要aj存在,那么ai就永远不可能成为最小值。应该被移除。因此,当窗口移动
  • 2023-03-09模拟队列
        重点:队列是有队头指针hh和队尾指针tt,判断空的条件是如果hh>=tt,队列就为空。栈只能从一个入口出入,栈底永远在0位置(这个位置不存元素)。但是队列是从队尾tail
  • 2023-01-15时间复杂度分析
    朴素分析直接暴力统计计算次数。摊还分析聚合分析核心思想:算出总复杂度然后均摊。例:1.“栈”:维护一个栈,支持栈顶插入和一次弹出所有元素。显然\(n\)次
  • 2022-11-16浅谈四边形不等式
    四边形不等式对于\(f_i=min(f_j+w(j,i))\)若满足\(w(a,d)+w(b+c)\gew(a,c)+w(b,d),a\leqb\leqc\leqd\)则\(f\)满足决策单调性\(f_i\leqf_j+w(i,j)\)设\(p_i\)为
  • 2022-11-14【数据结构/C语言】编写循环顺序队列结构相应的入队和出队算法
    如果希望循环顺序队列中的存储空间都能得到利用,可设置一个标志域变量tag,并以tag的值为0或1来区分队头指针和队尾指针相等时的队列状态是“空”还是“满”。试编写此结构相
  • 2022-10-24【数据结构-队列】队列的基本操作
    目录1顺序表实现队列(循环队列)1.1定义1.2初始化1.3判队空1.4判队满1.5出队1.6入队1.7队长2单向链表实现队列2.1定义2.2初始化2.3判队空2.4判队满2.5出队2.6