随笔分类 - 单调队列
摘要:题意:给出N*M的01矩阵,求矩阵个数,满足矩阵内全是‘1’,,而且被至少一个’0‘围住。(假设边界外是‘0’。(N,M<3000) 思路:这类问题,一般解决就是两个方向: A:压缩一维,即枚举上下边界,然后复杂度O(N^3); B:广告牌问题,即枚举下边界s,那么久可以看成s为底的一些高楼,再高楼
阅读全文
摘要:题意:二维平面上给你N颗星,给出星星的坐标,亮度; 然后给你一个W*H的窗口,问你最大的亮度和。 思路:扫描线,假设有一个inf*H的窗口,按照y排序,那么就把H范围内的星星放入了这个窗口(单调队列实现),现在就成了华东窗口问题,在一维数组里面找长度为W的窗口的最大和,但是现在带修改,单点修改,固定
阅读全文
摘要:pro: 给出一个n*m的地图,刚开始人在(x,y),每次给出一段区间(l,r,t),表示在时间[l,r]内,可以使人向4个方向(t)移动一格,或者不动。求最大可以移动多少格。 sol: 考虑每一列(上下移)或者一行(左右移)的情况。以右移为例,我们可以很快列出dp方程:f[x][y][i]=max
阅读全文
摘要:A .Assigning Workstations 题意:给定N个人的工作时间和工作时长,我们可以假设有无数台工作机器,如果一台机器超过M时间未使用就会关闭,那么我们怎么安排机器的使用,使得需要开启机器的次数最少。 思路:贪心,维护一个时间队列q,维护一个单调队列q1; 前者表示没有使用了但还没关闭
阅读全文
摘要:A .Secret of Chocolate Poles 题意:有黑白两种木块,黑色有1,K两种长度; 白色只有1一种长度,问满足黑白黑...白黑形式,长度为L的组合种类。 思路:直接DP即可。 #include<bits/stdc++.h> #define ll long long #define
阅读全文
摘要:学习了“叙利亚”这个单词;比较温和的一场;几何的板子eps太小了,坑了几发。 A .Hello SCPC 2018! 题意:给定一个排列,问它是否满足,前面4个是有序的,而且前面4个比后面的都小。 思路:数据比较小,可以暴力,也可以用前面4个的最大值和后面的数字的最小值比较。 #include<bi
阅读全文
摘要:There is a connected undirected graph with weights on its edges. It is guaranteed that each edge appears in at most one simple cycle. Assuming that th
阅读全文
摘要:Tom owns a company and he is the boss. There are n staffs which are numbered from 1 to n in this company, and every staff has a ability. Now, Tom is g
阅读全文
摘要:De Prezer loves rectangles.He has a n × m rectangle which there is a number in each of its cells. We show the number in the j - th column of the i - t
阅读全文
摘要:题意: 一个宽度为N的网格图,i上有h[i]高的方块。现在你有W个方块,问怎么放使得最终的最高点最高。 当一个格子的下方,左下方和右下方都有方块那么久可以把方块放到这个格子上。最左端和最右端不能放方块。 (N<=100000,W<=1018,h[i]<=109) 思路:显然是二分,对于二分的高度Mi
阅读全文
摘要:一个集合S的优美值定义为:最大的x,满足对于任意i∈1,x1,x,都存在一个S的子集S',使得S'中元素之和为i。 给定n个集合,对于每一次询问,指定一个集合S1和一个集合S2,以及一个数k,要求选择一个S2的子集S3(|S3|<=k),使得S1∪S3的优美值最大。 (集合元素可以重复) Input
阅读全文
摘要:The shorter, the simpler. With this problem, you should be convinced of this truth. You are given an array AA of NN postive integers, and MM queries i
阅读全文
摘要:描述 给定一个N × M的01矩阵,小Hi希望从中找到一个01间隔的子矩阵,并且子矩阵的面积越大越好。 例如对于 0101010 1000101 0101010 1010101 0101010 在右侧有一个5 × 4的01间隔子矩阵,在下方有一个3 × 7的01间隔子矩阵。 输入 第一行包含两个整数
阅读全文
摘要:给定一个NxM的01矩阵,小Hi希望从中找到一个01间隔的子方阵,并且方阵的边长越大越好。 例如对于 0100100 1000101 0101010 1010101 0101010 在右下角有一个4x4的01间隔方阵。 Input 第一行包含两个整数N和M。 以下N行M列包含一个NxM的01矩阵。
阅读全文
摘要:后缀数组一·重复旋律 后缀数组一·重复旋律 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴。我们知道一个音乐旋律被表示为长度为 N 的数构成的数列。 小Hi在练习过很多曲子以后发现很多作品自身包含一样的旋律。旋律是一段连续的数列,相似
阅读全文
摘要:股票价格3 股票价格3 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在关注股票,为了计算股票可能的盈利,他获取了一只股票最近N天的价格A1~AN。 小Hi想知道,对于第i天的股票价格Ai,几天之后股价会第一次超过Ai。 假设A=[69, 73, 68, 8
阅读全文
摘要:对不起,太弱了。。。。。。。。。。。。。。。。。想了一下午
阅读全文
摘要:HDU1506 HDU2870 HDU4328 以前做的是单调队列的方法,现在试一试DP 注意的是对于i,向左延伸的L[i]到i不一定是单调的,比如1 3 2 1 2,对于i=4,L[i]=1而是2所以不能简单的和左边第一个比较 错: if(a[i]<=a[i-1]) L[i]=L[i-1]+1;
阅读全文
摘要:基础单调队列:
阅读全文