• 2024-10-04Average
    二分答案转化为判定,这样我们就只关心最大的和是否大于0,而不关心除以区间长度的干扰了赛场上阴差阳错地写对了斜率优化,但是想不明白原理,几经周折查找资料,终于明白了:弹出队头决策的确会导致当前解未必最优,但一定不会干扰全局最优解;如果需要查找当前最优解,则需要二分下凸壳在DP的
  • 2024-10-01队列实现
    1、数组实现队列#include<stdio.h>#include<stdlib.h>#include<conio.h>#defineMAX10 /*定义队列的大小*/intmain(){ intfront,rear,val,queue[MAX]={0}; charchoice; front=rear=-1; while(rear<MAX-1&&choice!='e') {
  • 2024-09-29Java中的队列数据结构及其应用
    Java中的队列数据结构及其应用队列是一种线性数据结构,遵循先进先出(FIFO)的原则,即最先插入的元素最先被移除。队列的基本操作包括入队(enqueue)、出队(dequeue)和查看队头元素(peek)。本文将介绍队列的基本结构、操作及在JDK中的应用。队列的基本结构一个简单的队列可以用数组或
  • 2024-09-27算法题:用队列实现一个链表
    下面是添加了注释的ListNode类和LinkedListQueue类,以帮助理解每个部分的功能和目的://定义链表节点类,用于存储队列中的元素classListNode{intval;//存储节点的值ListNodenext;//指向下一个节点的指针//构造函数,用于创建新的节点ListNod
  • 2024-09-26JAVA 数据结构与算法 队列的介绍与应用
    一、队列队列是一个有序列表,可以用数组或者链表来实现遵循先入先出的原则。当我们将数据存入队列时称为”addQueue”,addQueue的处理需要有两个步骤:思路分析:将尾指针往后移:rear+1,当front==rear【空】若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所
  • 2024-09-23最大双子段和
    一个正向取前缀和,一个反向取,最后枚举断点。#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintn,sum;inta[200005];intfront[200005];intback[200005];intmain(){ios::sync_with_stdio(false); cin>>n; for(inti=1;i<=n;i++){ cin&
  • 2024-09-22数据结构--第三章 栈和队列
    注:根据严蔚敏等人的数据结构(C语言版)(第二版)记录,用于自己的复习记录。栈栈是限定仅在表尾进行插入和删除的线性表。表尾端称为栈顶,表头端称为栈底。不含元素的空表称为空栈。栈是后进先出的线性表。一、顺序栈的表示和实现顺序栈指的是利用顺序存储结构实现的栈,即利用一组连
  • 2024-09-22图论指南
    前置知识在了解图论之前,还需要知道怎么存图。vector用vector<int>G[MAXN]来存图。$G_i$表示从$i$出发,能够到达的点的数组。空间开销相较于链式前向星较大。也可以将vector替换为其他STL容器,如list、unordered_set、deque等。list的写法空间更优,常数较小,但是vecto
  • 2024-09-2161.《数据结构-栈 队列 串》
    栈栈是受限的线性表(只允许在一端进行插入删除操作)LIFO特点后进先出当n个不同元素进栈时,出栈元素的不同排列个数1/(n+1)Cn2n顺序栈:(S.top=-1)进栈:if(S.top==MaxSize-1)栈满S.data[++S.top]=x入栈:if(S.top==-1)栈空x=S.data[S.top--]大致理解图:链栈:不
  • 2024-09-1701BFS
    P4554小明的游戏大部分bfs题都可以用最短路做,而最短路中dijkstra用堆优化保证权值小的优先操作,而这题权值只有01两种,所以用01bfs,具体用deque操作,增加权值为0时(同色),放到队头,增加的权值为1时(异色),放到队尾,相当于直接\(O(1)\)排序好了。#include<bits/stdc++.h>us
  • 2024-09-167、队列
    1、链队#include<stdio.h>#include<malloc.h>#include<assert.h>#defineElemTypeinttypedefstructQueueNode{ElemTypedata;structQueueNode*next;}QueueNode;typedefstructLinkQueue{QueueNode*front;//队头QueueNode
  • 2024-09-14windows@共享网络共享打印机@局域网内远程调用打印机打印
    文章目录abstract流程简述预备工作启动服务
  • 2024-09-14队列的定义和基本操作的实现
    写代码:定义顺序存储的队列(数组实现),要求数组空间可以被循环利用 写代码:基于上述定义,实现“出队、入队、判空、判满”四个基本操作 写代码:定义链式存储的队列(单链表实现) 写代码:基于上述定义,实现“出队、入队、判空、判满”四个基本操作 1.定义顺序存储的队列(数组实现),要
  • 2024-09-12数据结构——队列
    1、定义从栈的学习我们知道栈是只允许在一端进行插入或删除操作的线性表。而队列:是只允许在一端进行插入在另一端删除的线性表。在生活中比如说到饭堂排队打饭,一端进一端出,这就是队列。2、队列顺序实现2.1、队列的基本形式typedefintElemtype;//需要时可以改为自己需要
  • 2024-09-10【C++ Primer Plus习题】14.3
    大家好,这里是国中之林!❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←问题:解答:main.cpp#include<iostream>#include"queuetp.h"usingnamespacestd;intmain(){ Queue
  • 2024-09-10C++中STL容器的使用
    容器一些基本操作语法vector初始化操作vector<int>a;//声明向量vector<int>a(10);//声明一个初始大小为10的向量vector<int>a(10,1);//初始大小为10,且值都为1的向量vector<int>b(a);//声明并用向量a初始化向量bvector<int>b(a.begin(),a.begin()+3);//将
  • 2024-09-09LeetCode 239. 滑动窗口最大值(滑动窗口)
    题目:239.滑动窗口最大值思路:用一个双端队列来保存滑动窗口内的值按大到小排序,时间复杂度0(n)。细节看注释classSolution{public:vector<int>maxSlidingWindow(vector<int>&nums,intk){ //元素值是nums的下标,满足nums值按大到小排序deque<in
  • 2024-09-08DAY11 栈与队列part02
      逆波兰式求值代码随想录(programmercarl.com)1classSolution{2public:3intevalRPN(vector<string>&tokens){4stack<longlong>st;5for(inti=0;i<tokens.size();i++)6{78if(tokens[i]=="+
  • 2024-09-08【C++ Primer Plus习题】12.5
    大家好,这里是国中之林!❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←问题:解答:main.cpp#include<iostream>#include<cstdlib>#include<ctime>#include"queue.h
  • 2024-09-07浙大数据结构:02-线性结构4 Pop Sequence
    这道题我们采用数组来模拟堆栈和队列。简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop1、条件准备stk是栈,que是队列。tt指向的是栈中下标,front指向队头,rear指向队尾。初始化栈顶为0,队头为0,队尾为-1#include<iostream>usingn
  • 2024-09-05单调队列
    单调队列经典用法:维持滑动窗口滑动过程中的最大值或最小值。最大值时,单调队列从头到尾降序维持求解答案的可能性单调队列里所有对象按照规定好的单调性组织当某个对象从队尾进入单调队列时,会从队头或者队尾依次淘汰单调队列里,对后续求解答案没有帮助的对象每个对象一旦弹出
  • 2024-09-02[数据结构] 循环队列
    front:头指针rear:尾指针maxsize:数组长度循环队列通常会让留空数组中的一位,区分队列为空和队列为满的状态。入队移动rear,出队移动front。形式1(默认):front指向队头元素的前一位,而rear指向队尾元素。队列为空:front==rear队列为满:front==(rear+1)%maxsize元素个数:(r
  • 2024-09-01【链式队列的实现】
    1.链式队列与循环顺序队的比较1.1链式队列优点动态扩展:不需要预先分配固定的存储空间,内存使用灵活,不会因为队列满而导致溢出。插入和删除操作简单:在链式队列中,插入和删除操作只需调整指针,无需移动数据,时间复杂度为O(1)。无容量限制:只要系统有足够的内存,链式
  • 2024-09-01数据结构 栈与队列 --循环队列
    栈和队列--循环队列文章目录栈和队列--循环队列前言一、队列是什么?1.2时间复杂度比较1.3难题及解决二、队列的实现2.1循环队列结构体实现2.2循环队列基本操作总结前言前情提要:之前的文章讲了队列和栈的基本概念,今天来讲队列的具体实现一、队列是什么?队
  • 2024-08-30栈和队列的实现
    1栈栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(LastInFirstOut)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数