随笔分类 - 单调栈|队列
摘要:比赛链接:https://vjudge.net/contest/405905#problem/D 题意: 给你一个长度为n的由0或1构成的串s,你需要切割这个串,要求切割之后的每一个子串长度要小于等于k。且每一个子串内不能全都是01交替,就比如 00101010、11010101这样没有问题,不需要
阅读全文
摘要:题意: 题目描述 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。 小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编号大的格子。而
阅读全文
摘要:题目: 题目描述 今天是小Z的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值。 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z最多又只能吃M小块(M≤N)的蛋糕。 吃东西自然就不想思考了,于是小Z把这个任务扔给了学OI的
阅读全文
摘要:题意: 给你n个数hi,你刚开始在第1个数的位置,你需要跳到第n个数的位置。 1、对于i、j(i<j) 如果满足 max(hi+1,…,hj−1)<min(hi,hj) max(hi,hj)<min(hi+1,…,hj−1) 那么就可以从i直接一步跳到j位置 2、如果j=i+1,那么也可以直接跳过去
阅读全文
摘要:题意: 由k(1 <= K <= 100)个工人组成的团队应油漆围墙,其中包含N(1 <= N <= 16 000)个从左到右从1到N编号的木板。每个工人i(1 <= i <= K)应该坐在木板Si的前面,并且他只能喷涂一个紧凑的间隔(这意味着该间隔中的木板应该是连续的)。此间隔应包含Si木板。同样
阅读全文
摘要:题意: 有n个订单和可以在m小时内制作月饼,制作月饼不考虑时间(即,你可以在一个时刻在所有需要的月饼都做完) 接下来是n个订单的信息:需要在mon月,d日,year年,h小时交付订单r个月饼 接下来一行t,s表示制作的月饼可以保质t小时,每保质一小时需要花费s的价值 接下来m行表示从第0小时开始在该
阅读全文
摘要:单调队列 单调队列是指一个队列内部的元素具有严格单调性的一种数据结构,分为单调递增队列和单调递减队列。 单调队列满足两个性质 1.单调队列必须满足从队头到队尾的严格单调性。 2.排在队列前面的比排在队列后面的要先进队。 元素进队列的过程对于单调递增队列,对于一个元素a 如果 a > 队尾元素 那么直
阅读全文
摘要:题意: 给你一个序列,让你找出来最长的子序列,这个子序列中最大值减去最小值要小于k大于等于m 题解: 维护两个单调序列,一个递增一个递减。这样可以对于序列中的每一个位置。找到包含这个位置的最长满足题意得序列 具体见代码 代码: 1 #include <stdio.h> 2 #include <str
阅读全文
摘要:Mr. Pote's shop sells beans now. He has N bags of beans in his warehouse, and he has numbered them with 1, 2, …, N according to their expired dates. T
阅读全文
摘要:题意: 一个栅栏一共有n(从1——n)个木板,我们找k个工人去粉刷它,li表示每个人有限制粉刷木板数量,pi表示粉刷一个木板得到的钱,si表示他开始在那个木板前面 如果一个工人要粉刷,那么他必须粉刷si这个木板,而且工人粉刷时必须是连续的木板 题解: dp[i][j]表示有i个人粉刷j块木板所获得的
阅读全文
摘要:题意: 就是给你个n行字符串,字符串由0和1构成,让你找出来一个里面全部字符都是1的第二大的矩形,如果一个大矩形包含一个小矩形,那么他们算两个 题解: 这道题和51nod 1158很相似,只不过我们要找第二大,那么我们可以维护一个记录第一大和第二大的变量,每次都对他们进行判断 但是注意我们不能通过5
阅读全文
摘要:单调栈和队列讲解:传送门 HDU -1506题意: 就是给你一些矩形的高度,让你统计由这些矩形构成的那个矩形面积最大 如上图所示,如果题目给出的全部是递增的,那么就可以用贪心来解决 从左向右依次让每一个矩形的高度当作最后的高度,来从中选取最大值就可以了 但是如果它不是递增的,中间会出现低谷,那么要还
阅读全文