![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
中途相遇法
文章平均质量分 70
冷月残星
这个作者很懒,什么都没留下…
展开
-
中途相遇法,哈希技术(和为0的4个值,uva 1152)
题目具有对称性,则可以同时从两边出发来找答案,因为时间复杂度由最大的决定,因此让两边时间复杂度尽量一样可以降低总体的时间复杂度,此题中n^2logn+n^2logn试了下map,9秒超时,用哈希3.540秒。还是快很多的。因为map随着数据量的增多,logn的时间复杂度开始拖慢速度。而哈希大部分时候都是O(1),极端情况下是O(n)。极端情况一般都不用考虑,除非题目是特殊设原创 2016-08-23 15:55:57 · 797 阅读 · 0 评论 -
分治法,中途相遇法(Non-boring sequences,uva 1608)
分治法很容易想到。中途相遇法真是个神奇的东西。意思大概就是,你可以从两边出发去寻找答案,然而无论你从那一边出发,随着寻找的次数逐渐增多,枚举量飞速增长,因此你不如从两边一起找,这样两边的枚举量都能显著控制在较低水平,从而提高程序效率。感觉在uva超时了就很有可能是数组越界了。。。代码#include#define maxn 200010#define INF原创 2016-09-13 21:43:55 · 752 阅读 · 0 评论 -
中途相遇法(侏罗纪,LA 2965)
几个需要注意的套路:1、给你N个东西,每个东西可选可不选,那就是2^N枚举,如果N比较小可以用一个int的每个位来表示是否选取这个物品,即位向量。如果2^N枚举,那么很有可能时间不够,因此可以使用中途相遇法,再利用map或者set,可以把时间复杂度从O(2^N)降到O(2^(N/2)logN)。2、如果要判断奇偶,特别是位向量,那么亦或运算将会是一个非常高效的方法。代码原创 2016-10-27 20:40:03 · 774 阅读 · 0 评论