二分
hcx11333
菜鸡一枚,成长ing。。。
展开
-
HDU2333 Assemble(二分)
题意:想要组装一台电脑,给定预算和n个组件的类型、名称(这个没什么用)、价格、质量。整台电脑的质量是组件的最低质量,求满足预算的最高质量。 思路:开始没想到二分,对着1000的数据量各种暴力。。。知道是二分之后还是很好处理的,先把同类型的组件放在一起,优先排价格,然后是质量。这题麻烦的地方在于处理输入,多写了一个结构体str保存组件名和对应的区间,下标对应类型。 #includ原创 2017-01-17 22:29:22 · 431 阅读 · 0 评论 -
POJ3261 Milk Patterns(二分+后缀数组)
题意:一个长度N(1<=N<=20000)的数列,找出其中至少重复了K次的最长子串,输出长度,子串可以重叠。 思路:后缀数组经典应用,二分答案ans,找到满足条件的最大的长度。对于每个二分的值x,我们按照x将height值分组,同一组内超过K个位置即可。 #include <iostream> #include <cstdio> #include <...原创 2018-10-19 11:44:49 · 150 阅读 · 0 评论 -
UVA11475 Extend to Palindrome(扩展KMP/Manacher/后缀数组)
题意:给一个长度最大100000的字母串,可在它后面任意补充字符,输出可以构成的最短回文串。 思路:补充的部分要与前面形成回文,要求出来最少的情况,显然我们要先求出原串的后缀能够形成的最大回文串,然后补充剩下的前缀部分的对称串即可。最好的情况就是原串回文,不需要补充,最坏的情况是以最后一个字母为对称中心,要补充n-1个字母。 求最大的回文后缀,有几种方法: Manacher: 在串上跑一次...原创 2018-10-19 13:27:04 · 289 阅读 · 0 评论