码迷,mamicode.com
首页 > 编程语言 > 详细

算法复习——哈希表+折半搜索(poj2549)

时间:2017-09-22 14:12:39      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:distinct   number   div   ati   第一个   暴力   solution   des   使用   

搬讲义~搬讲义~

技术分享技术分享技术分享技术分享

折半搜索感觉每次都是打暴力时用的啊2333,主要是用于降次··当复杂度为指数级别时用折半可以减少大量复杂度··其实专门考折半的例题并不多···一般都是中途的一个小优化···

然后折半搜索常常与哈希表一起使用··尤其是遇到方程类的问题时···

哈希表就不说了吧···毕竟比较简单···不懂得看下面题的代码就行了,一道折半与哈希表联合运用的经典方程模型题···

Description

技术分享Given S, a set of integers, find the largest d such that a + b + c = d where a, b, c, and d are distinct elements of S.

Input

Several S, each consisting of a line containing an integer 1 <= n <= 1000 indicating the number of elements in S, followed by the elements of S, one per line. Each element of S is a distinct integer between -536870912 and +536870911 inclusive. The last line of input contains 0.

Output

For each S, a single line containing d, or a single line containing "no solution".

Sample Input

5
2 
3 
5 
7 
12
5
2 
16 
64 
256 
1024
0

Sample Output

12
no solution

由a+b+c=d自然而然地转成a+b=d-c,然后将所有a+b储存在哈希表里,之后按d从大到小用d-c查找即可,第一个查找到的就是最大答案··

另外注意多储存一个下标,因为abcd不能为同一元素

算法复习——哈希表+折半搜索(poj2549)

标签:distinct   number   div   ati   第一个   暴力   solution   des   使用   

原文地址:http://www.cnblogs.com/AseanA/p/7574339.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!