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


    搬讲义~搬讲义~

    折半搜索感觉每次都是打暴力时用的啊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不能为同一元素

  • 相关阅读:
    Java正则表达式教程及示例
    MySQL 事务
    MySQL 正则表达式
    常用函数 __MySQL必知必会
    使用MySQL正则表达式 __MySQL必知必会
    首先使用flex制作table
    javascript原生调用摄像头
    网页背景图片随机
    网页背景视频的实现
    网站无法显示logo?
  • 原文地址:https://www.cnblogs.com/AseanA/p/7574339.html
Copyright © 2020-2023  润新知