![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
简单数据结构
恋花飘落
这个作者很懒,什么都没留下…
展开
-
前向星和链式前向星
概念:前向星:前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序,并记录下以某个点为起点的所有边在数组中的起始位置。链式前向星:链式前向星其实就是静态建立的邻接表,时间效率为O(m),空间效率也为O(m)。遍历效率也为O(m)。next表示当前结点的下一个节点。用vector表示二维数组。模板://前向星int idx,e[mx],h[mx],ne[mx];void add(int a,int b){ e[idx]=b;ne原创 2020-11-13 15:29:27 · 263 阅读 · 0 评论 -
AcWing 111. 畜栏预定(小根堆)
题干:有N头牛在畜栏中吃草。每个畜栏在同一时间段只能提供给一头牛吃草,所以可能会需要多个畜栏。给定N头牛和每头牛开始吃草的时间A以及结束吃草的时间B,每头牛在[A,B]这一时间段内都会一直吃草。当两头牛的吃草区间存在交集时(包括端点),这两头牛不能被安排在同一个畜栏吃草。求需要的最小畜栏数目和每头牛对应的畜栏方案。1≤N≤500001≤A,B≤1000000思路:因为要求尽量少的...原创 2019-07-20 21:15:51 · 192 阅读 · 0 评论 -
AcWing 114. 国王游戏(贪心、大数处理)
题干:恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得...原创 2019-07-22 20:25:30 · 226 阅读 · 0 评论 -
AcWing 150. 括号画家(栈)
题干:这一天,刚刚起床的达达画了一排括号序列,其中包含小括号( )、中括号[ ]和大括号{ },总长度为N。这排随意绘制的括号序列显得杂乱无章,于是达达定义了什么样的括号序列是美观的:(1) 空的括号序列是美观的;(2) 若括号序列A是美观的,则括号序列 (A)、[A]、{A} 也是美观的;(3) 若括号序列A、B都是美观的,则括号序列AB也是美观的。例如 [ (){}] ( )是美观...原创 2019-08-28 20:31:29 · 332 阅读 · 1 评论 -
AcWing 154. 滑动窗口(单调栈)
题干:给定一个大小为n≤10610^6106的数组。有一个大小为k的滑动窗口,它从数组的最左边移动到最右边。您只能在窗口中看到k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],k为3。您的任务是确定滑动窗口位于每个位置时,窗口中的最大值和最小值。输入包含两行。第一行包含两个整数n和k,分别代表数组长度和滑动窗口的长度。第二...原创 2019-08-29 20:51:11 · 308 阅读 · 0 评论 -
AcWing 131. 直方图中最大的矩形(单调栈)
题干:直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1:通常,直方图用于表示离散分布,例如,文本中字符的频率。现在,请你计算在公共基线处对齐的直方图中最大矩形的面积。图例右图显示了所描绘直方图的最大对齐矩形输入格式输入包含几个测试用例。每个测试...原创 2019-09-09 08:30:00 · 249 阅读 · 0 评论