上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 32 下一页
摘要: 题目链接 #题目大意 给一个直方图,在图中取一个矩形,使其面积最大。 #解题思路1 显然对于一个选定的矩形$S$来说,其高度取决于所选的直方图矩形中高度最低的那个矩形$a_i$,换句话说,在选定的面积$S$内对于这个高度最低的矩形$a_i$来说,没有比它更低的矩形了。所以我们可以用一个矩形,看它能向 阅读全文
posted @ 2020-04-17 23:50 shuitiangong 阅读(86) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题目大意:求每个长度为$k$的区间的最小值和最大值。 单调队列的模板题,可以用一个单调递增栈和一个单调递减栈分别来维护区间最小值与最大值。至于怎么控制区间长度,由队列的特性,队列越靠前的元素肯定越靠近区间左端,所以每次只要检查队首的元素是否在区间之外并弹出就是了。 阅读全文
posted @ 2020-04-17 23:14 shuitiangong 阅读(86) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 这个题首先想象一下朴素的算法怎么做。想要知道一个区间的最大值,那么对于每一个以$a_i$为最小的元素的区间,它的左右端点都是比它小的数(为了方便我用开区间来描述)。所以只要以$a_i$的起点向左右扩展就行了,这样的复杂度是$O(n^2)$。 那么如何来优化呢?计算区间的和用前缀和就行了 阅读全文
posted @ 2020-04-17 22:57 shuitiangong 阅读(119) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 首先提一下第一句很重要,定义一个区间的值为其众数出现的 次数 ,区间的值是次数而不是众数的值。这是一道经典的二分判定答案的题,如果从正面想的话不太好做,确实感觉无从下手,但是可以考虑一下判定答案,毕竟,判定比求解要简单。 因为$n \leq 1e5$所以,答案的范围就是$1$至$n$之 阅读全文
posted @ 2020-04-17 11:03 shuitiangong 阅读(142) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 这题$n\leq 1000$,首先我想的是直接枚举三个值然后二分找第$4$个数,但是显然复杂度肯定是不能接受的。那么只能继续降复杂度了。。。如果把这些数做一下预处理的话,可以$n^2$求出两个数一组的所有情况,然后分别从两头枚举,两数之和为0,肯定一个小一个大,我们将所有组合组成的数排 阅读全文
posted @ 2020-04-15 20:41 shuitiangong 阅读(151) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题目大意:给一个长度为$n$的字符串$s$,升序输出$s$的所有前缀中具有循环节的前缀并且输出循环次数。 $kmp$的$next$数组存储了当前位置公共前后缀的大小,同样也是失配之后往前跳转的长度。每次失配的时候,指针会从一个(与某个前缀相同的)公共后缀的尾部跳转到前一个(与某个前缀相 阅读全文
posted @ 2020-04-14 22:11 shuitiangong 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意:给一个串的右边添加尽量少的字符,使之成为回文串。 如果一个串本身就是回文串的话,不需要添加任何字符它就是可以得到的最小的回文串了~~(废话)~~。如果需要添加字符的,这个串的右半部分必需全部都为回文串(可能就一个字符),如果不是,那么光在右边添加字符定是不够的。所以我们用马拉车求 阅读全文
posted @ 2020-04-14 19:47 shuitiangong 阅读(144) 评论(0) 推荐(0) 编辑
摘要: "POJ1015" "UVA323" "参考文章" 题目大意:给出$n$对数,从中选出$m$对数,使各对数的差累加和最小的情况下总和最大。 (博主看了几篇文章,但是都没有考虑到背包容量的越界问题,关于这个,会在代码里解释。顺便提一下,POJ这题的数据是比较弱的,建议去UVA 323检测一下代码的正确 阅读全文
posted @ 2020-04-10 10:18 shuitiangong 阅读(109) 评论(0) 推荐(0) 编辑
摘要: "题目链接" 题目大意:求把一个整数$S$拆成若干数的和, 并且这些数的最小公倍数最大。输出最小公倍数对$m$取模的结果。 我们如果想使结果最大,肯定要尽量多的使用互质的数,因为互质的数的乘积就是最小公倍数,而不用除以这些数之间的最大公约数。那么全用素数和$1$不就行了吗?但是如果只想到这里的话就忘 阅读全文
posted @ 2020-04-08 17:39 shuitiangong 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意:给定几种不同面额的硬币若干枚,需要求的用这些硬币可以组成多少种范围在1~m的不同面额的组合。 题面是很典型的多重背包,但是数据看起来并不是直接用多重背包就能过的。这里需要多重背包的一个优化技巧:二进制优化。我们把一个数$n$拆成$1,2,4,8···$和$k$(拆剩下的数),就可 阅读全文
posted @ 2020-04-08 16:52 shuitiangong 阅读(165) 评论(0) 推荐(0) 编辑
上一页 1 ··· 18 19 20 21 22 23 24 25 26 ··· 32 下一页