数据结构
文章平均质量分 63
Apro1066
其他我都不想聆听 唯有我的声响除外
展开
-
STL之优先队列
说到队列,我们首先想到就是先进先出,后进后出;那么何为优先队列呢,在优先队列中,元素被赋予优先级,当访问元素时,具有最高级优先级的元素先被访问。即优先队列具有最高级先出的行为特征。这种行为有点像“急诊病人插队”的原理。STL的优先队列也定义在<queue>里。用priority_queue<int> pque;来声明。这个qpue就是“越小的整数优先级越低的优先队列”。...原创 2018-08-18 23:32:09 · 747 阅读 · 0 评论 -
CF466C Number of Ways (#树状数组)
题意翻译题目描述 你得到了一个数组a,包含n个数字a[1],a[2],a[3],...,a[n].现在你要找到把它分成三份的方法,使得每一份之内所有数的和相等。简单地说,你需要找到一个数对(i,j),使得输入数据第一行是一个整数n(1<=n<=500000),表示数列中有多少个数。接下来一行有n个数,分别表示a[1],a[2],a[3],...,a[n]。输...原创 2019-07-17 11:44:34 · 164 阅读 · 0 评论 -
[洛谷]P1816 忠诚 (#线段树)
题目描述老管家是一个聪明能干的人。他为财主工作了整整10年,财主为了让自已账目更加清楚。要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意。但是由于一些人的挑拨,财主还是对管家产生了怀疑。于是他决定用一种特别的方法来判断管家的忠诚,他把每次的账目按1,2,3…编号,然后不定时的问管家问题,问题是这样的:在a到b号账中最少的一笔是多少?为了让管家没时间作假他总是一次问多个问题。...原创 2019-07-17 13:27:49 · 479 阅读 · 0 评论 -
[洛谷]P4392 [BOI2007]Sound 静音问题 (#线段树)
题目描述数字录音中,声音是用表示空气压力的数字序列描述的,序列中的每个值称为一个采样,每个采样之间间隔一定的时间。很多声音处理任务都需要将录到的声音分成由静音隔开的几段非静音段。为了避免分成过多或者过少的非静音段,静音通常是这样定义的:m个采样的序列,该序列中采样的最大值和最小值之差不超过一个特定的阈值c。请你写一个程序,检测n个采样中的静音。输入输出格式输入格式:第一行有...原创 2019-07-17 19:55:47 · 305 阅读 · 0 评论 -
[洛谷]P2278 [HNOI2003]操作系统 (#优先队列)
题目描述写一个程序来模拟操作系统的进程调度。假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的。其中运行优先级用自然数表示,数字越大,则优先级越高。如果一个进程到达的时候CPU是空闲的,则它会一直占用CPU直到该进程结束。除非在这个过程中,有一个比它优先级高的进程要运行。在这种情况下,这个新的(优先级更高的)进程会占用CPU,而老的只有等待。如果一个进程到达...原创 2019-07-25 21:15:00 · 258 阅读 · 0 评论 -
[洛谷]P1714 切蛋糕 (#单调队列)
题目描述今天是小Z的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值。小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕。吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的你,请你帮他从这N小块中找出连续的k块蛋糕(k≤M),使得其上的幸运值最大。输入格式输入文件c...原创 2019-08-13 20:59:12 · 278 阅读 · 0 评论 -
[洛谷]P3368 【模板】树状数组 2 (#树状数组+差分)
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数数加上x2.求出某一个数的值输入格式第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含2或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将区间[x,y]内每个数加上k...原创 2019-08-09 15:42:17 · 307 阅读 · 0 评论 -
[洛谷]P4939 Agent2 (#树状数组)
题目背景炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的。每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了。只有不咕鸟Lyn_king一个人冒着太阳等了半个多小时,然后居然看到连ENLIGHTENED行动参谋都咕咕咕了,果然咕咕咕是人类的本性啊。题目描述作为一个ENLIGHTENED行动指挥,自然不想看到这一点,于是他偷取到了那些...原创 2019-08-09 17:55:46 · 250 阅读 · 0 评论 -
[洛谷]P2880 [USACO07JAN]平衡的阵容Balanced Lineup (#树状数组)
题目背景题目描述:每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序列排队. 有一天, John 决定让一些牛们玩一场飞盘比赛. 他准备找一群在对列中为置连续的牛来进行比赛. 但是为了避免水平悬殊,牛的身高不应该相差太大. John 准备了Q (1 <= Q <= 200,000) 个可能的牛的选择和所有牛的身高 (1 <= 身高 ...原创 2019-08-09 22:15:08 · 357 阅读 · 0 评论 -
CF1065C Make It Equal (#树状数组)
题意翻译有一个长度为nn的序列。定义切割操作为把序列中所有大于等于HH(自定义)的数变为HH,定义其代价为操作前后序列中所有数的变化量的和。定义一个“好的”切割操作为代价小于等于K的操作。问至少需要多少次“好的”切割操作才可以使序列中的所有数的大小均相等。题目描述There is a toy building consisting ofnntowers. Each to...原创 2019-08-09 23:24:59 · 197 阅读 · 0 评论 -
[洛谷]P3870 [TJOI2009]开关 (#线段树)
题目描述现有N(2 ≤ N ≤ 100000)盏灯排成一排,从左到右依次编号为:1,2,......,N。然后依次执行M(1 ≤ M ≤ 100000)项操作,操作分为两种:第一种操作指定一个区间[a, b],然后改变编号在这个区间内的灯的状态(把开着的灯关上,关着的灯打开),第二种操作是指定一个区间[a, b],要求你输出这个区间内有多少盏灯是打开的。灯在初始时都是关着的。输入格式第...原创 2019-08-14 23:34:59 · 566 阅读 · 0 评论 -
[洛谷]P2627 修剪草坪 (#线性dp+单调队列)
题目描述在一年前赢得了小镇的最佳草坪比赛后,Farm John变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,Farm John希望能够再次夺冠。然而,Farm John的草坪非常脏乱,因此,Farm John只能够让他的奶牛来完成这项工作。Farm John有N(1 <= N <= 100,000)只排成一排的奶牛,编号为1...N。每只奶牛的效率是不同的,...原创 2019-08-20 22:12:50 · 320 阅读 · 0 评论 -
[洛谷]P2032 扫描 (#单调队列)
题目描述有一个 1 ∗ n 的矩阵,有 n 个正整数。现在给你一个可以盖住连续的 k 的数的木板。一开始木板盖住了矩阵的第 1 ∼ k 个数,每次将木板向右移动一个单位,直到右端与第 n 个数重合。每次移动前输出被覆盖住的最大的数是多少。输入格式第一行两个数,n,k,表示共有 n 个数,木板可以盖住 k 个数。第二行 n 个数,表示矩阵中的元素。输出格式共 n ...原创 2019-08-12 17:24:26 · 285 阅读 · 0 评论 -
[洛谷]P1531 I Hate It (#树状数组)
题目背景很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。题目描述不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩输入格式第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别代表学生的数目和操作的...原创 2019-08-13 10:50:38 · 297 阅读 · 0 评论 -
[洛谷]P3353 在你窗外闪耀的星星 (#树状数组)
题目描述飞逝的的时光不会模糊我对你的记忆。难以相信从我第一次见到你以来已经过去了3年。我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫瑰色的脸颊。我明白,我已经沉醉于你了。之后,经过几个月的观察和窥探,你的优雅与智慧,你对待生活的态度和你对未来的愿望深切地在我心中留下了印象。你是迷人的阳光女孩,我总是梦想着与你分享余生。唉,实际上你远远...原创 2019-07-16 21:56:25 · 172 阅读 · 0 评论 -
[洛谷]P3372 【模板】线段树 1 (#线段树)
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和输入输出格式输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将区间[...原创 2019-07-16 20:15:45 · 359 阅读 · 0 评论 -
[洛谷]P3378 【模板】堆
题目描述如题,初始小根堆为空,我们需要支持以下3种操作:操作1: 1 x 表示将x插入到堆中操作2: 2 输出该小根堆内的最小数操作3: 3 删除该小根堆内的最小数输入输出格式输入格式:第一行包含一个整数N,表示操作的个数接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下:操作1: 1 x操作2: 2操作3: 3输出格式:包含若干行正整...原创 2019-07-18 21:05:26 · 206 阅读 · 0 评论 -
[洛谷]P3916 图的遍历 (#图论 -1.1)(#搜索 -3.1)
题目描述给出N个点,M条边的有向图,对于每个vv,求A(v)表示从点v出发,能到达的编号最大的点。输入输出格式输入格式:第1 行,2 个整数N,M。接下来MM行,每行2个整数Ui,Vi,表示边(Ui,Vi)。点用1,2,⋯,N编号。输出格式:N 个整数A(1),A(2),⋯,A(N)。输入输出样例输入样例#14 31 22 44 3输出样...原创 2018-09-24 22:53:10 · 409 阅读 · 0 评论 -
[洛谷]P2661 信息传递 (#图论 -1.2)
题目描述有n个同学(编号为1到n)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游...原创 2018-09-25 22:36:18 · 429 阅读 · 0 评论 -
图论
图(graph)是数据结构和算法学中最强大的框架之一(或许没有之一)。图几乎可以用来表现所有类型的结构或系统,从交通网络到通信网络,从下棋游戏到最优流程,从任务分配到人际交互网络,图都有广阔的用武之地。而要进入图论的世界,清晰、准确的基本概念是必须的前提和基础。下面对其最核心和最重要的概念作出说明。关于图论的概念异乎寻常的多,先掌握下面最核心最重要的,足够开展一些工作了,其它的再到实践中不断去...转载 2018-09-22 22:44:56 · 1048 阅读 · 0 评论 -
A.pro读算法の8:快速搞定图的遍历
与其他数据结构一样,图也需要进行遍历操作,来访问各个数据点,以及后续对顶点和边进行操作。相对于树来说,图的结构更为复杂。目录1.1 概述1.2 图的存储结构1.3 深度优先遍历[2018.10.01完工]1.4 广度优先遍历[2018.10.11完工]大部分灵感来与《啊哈算法》1.1 概述先介绍一下图。图(graph)是数据结构和算法学中最强大的框架之一(或许没...原创 2018-09-23 00:15:11 · 660 阅读 · 2 评论 -
A.pro读算法の9:“树”世界巡行
本文章不算难,不写引言和目录了。(~ .~)本文章由啊哈算法改编而成。这是啥?是我们在算法8里面了解的图(Gragh)吗?不对,它应该是一棵树(Tree)。你可能会说,哪里像树了?我来把它变换一下。 是不是很像一棵倒挂的树,也就是说它是根朝上,而叶子朝下的。你可能要问了,这玩意和图有什么区别吗,不就是无向图吗。其实不然,还是有差异的。树,就是不含回路的连通无向图。例如:...原创 2018-10-08 22:59:58 · 174 阅读 · 0 评论 -
[洛谷]P1334 瑞瑞的木板 (#堆 -1.1)
题目描述瑞瑞想要亲自修复在他的一个小牧场周围的围栏。他测量栅栏并发现他需要N(1≤N≤20,000)根木板,每根的长度为整数Li(1≤Li≤50,000)。于是,他神奇地买了一根足够长的木板,长度为所需的N根木板的长度的总和,他决定将这根木板切成所需的N根木板。(瑞瑞在切割木板时不会产生木屑,不需考虑切割时损耗的长度)瑞瑞切割木板时使用的是一种特殊的方式,这种方式在将一根长度为x的模板切为两根...原创 2018-10-10 23:08:07 · 457 阅读 · 0 评论 -
[洛谷]P1996 约瑟夫问题 (#树状数组)
题目背景约瑟夫是一个无聊的人!!!题目描述n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……依次类推,直到所有的人都出圈,请输出依次出圈人的编号.输入输出格式输入格式:n m输出格式:出圈的编号输入输出样例输入样例#110 3输出样例#13 6 9 2 7 1 8 5...原创 2019-02-06 23:48:17 · 215 阅读 · 0 评论 -
[洛谷]P3374 【模板】树状数组 1 (#树状数组)
题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某一个数加上x2.求出某区间每一个数的和输入输出格式输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3个整数,表示一个操作,具体如下:操作1: 格式:1 x k 含义:将第x个数加上k操...原创 2019-02-07 16:28:22 · 206 阅读 · 0 评论 -
[洛谷]P1440 求m区间内的最小值 (#单调队列)
题目描述一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值。若前面的数不足m项则从第1个数开始,若前面没有数则输出0。输入输出格式输入格式:第一行两个数n,m。第二行,n个正整数,为所给定的数列。输出格式:n行,第i行的一个数ai,为所求序列中第i个数前m个数的最小值。输入输出样例输入样例#16 27 8 1 4...原创 2019-02-07 23:43:51 · 287 阅读 · 0 评论 -
[洛谷]P1323 删数问题 (#单调队列+优先队列)
题目描述描述:一个集合有如下元素:1是集合元素;若P是集合的元素,则2 * P +1,4*P+5也是集合的元素,取出此集合中最小的K个元素,按从小到大的顺序组合成一个多位数,现要求从中删除M个数位上的数字,使得剩下的数字最大,编程输出删除前和删除后的多位数字。注:不存在所有数被删除的情况输入输出格式输入格式:输入的仅一行,K,M的值,K,M均小于等于30000。...原创 2019-02-12 21:43:39 · 941 阅读 · 0 评论 -
[洛谷]P1725 琪露诺 (#线性dp+单调队列)
题目描述在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而且琪露诺按照一种特殊的方式进行移动,当她在格子i时,她只移动到区间[i+l,i+r]中的任意一格。你问...原创 2019-02-12 23:34:44 · 225 阅读 · 0 评论 -
[洛谷]P1944 最长括号匹配_NOI导刊2009提高(1) (#栈)
题目描述对一个由(,),[,]括号组成的字符串,求出其中最长的括号匹配子串。具体来说,满足如下条件的字符串成为括号匹配的字符串:1.(),[]是括号匹配的字符串。2.若A是括号匹配的串,则(A),[A]是括号匹配的字符串。3.若A,B是括号匹配的字符串,则AB也是括号匹配的字符串。例如:(),[],([]),()()都是括号匹配的字符串,而](则不是。字符串A的子串是指由A...原创 2019-05-22 23:43:01 · 472 阅读 · 0 评论 -
CF140C New Year Snowmen (#贪心+优先队列)
题意翻译现在来做雪人,每个雪人由三个不同大小的雪球构成:一个大的,一个中等的,一个小的。现在有nn个雪球半径分别为r_1, r_2, ..., r_nr1,r2,...,rn为了做雪人,三个雪球的大小必须两两不同。例如,半径分别为1,2,31,2,3的雪球可以做成雪人,但2,2,32,2,3或2,2,22,2,2不行。现在需要尽可能做更多雪人。Input第一行是一个整数n(1...原创 2019-06-29 22:48:54 · 331 阅读 · 0 评论 -
[洛谷]P3594 [POI2015]WIL-Wilcze doły (#单调队列)
题目描述给定一个长度为n的序列,你有一次机会选中一段连续的长度不超过d的区间,将里面所有数字全部修改为0。请找到最长的一段连续区间,使得该区间内所有数字之和不超过p。输入格式第一行包含三个整数n,p,d(1<=d<=n<=2000000,0<=p<=10^16)。第二行包含n个正整数,依次表示序列中每个数wi。输出格式包含一行一个正整数,即修改后能...原创 2019-10-08 23:51:31 · 214 阅读 · 0 评论