摘要: 题目大意:给一个非负整数序列,求出一个使得区间和乘以区间最小值最大的区间。题目分析:单调队列。维护两个数组,l[i]表示以a[i]为最小值的左半区间的最左边端点,r[i]表示以a[i]为最小值的右半区间的最右边端点,l[i]和r[i]合起来便是以a[i]为最小值的整个区间。枚举一遍 i 即可。注意:... 阅读全文
posted @ 2015-10-14 21:19 20143605 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出一个有n个数的序列,找出最短的涵盖1~k之间所有整数的连续区间。题目分析:扫描一遍序列,维护head、tail两个位置。要注意,最短的区间上两端的数一定[1,k]上。代码如下:# include# include# include# includeusing namespace std... 阅读全文
posted @ 2015-10-14 18:10 20143605 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有n条长度为1的线段,n个区间,第i条线段在第i个区间中,问线段之间的最少间隙有几个。题目分析:先对区间排序,先按右端点排,再按左端点排。有重叠的区间(仅有交点重叠也视为重叠)之间一定可以摆不出空隙来。贪心策略:每碰到一个新的区间(与前面区间没有任何重叠),则把线段放到该区间最后一个长度为... 阅读全文
posted @ 2015-10-14 10:37 20143605 阅读(394) 评论(0) 推荐(0) 编辑