二分查找:分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成 ...
分类:
其他好文 时间:
2017-10-11 23:40:23
阅读次数:
125
二分是啥? 在有序的序列中进行折半查找,可以做到log n的时间查询。 咋二分? 将n个元素分成大致相等的两部分,取a[mid]与x做比较 如果x = a[n/2],则找到x,算法中止 如果x < a[n/2],则只要在数组a的左半部分继续搜索x 如果x > a[n/2],则只要在数组a的右半部分搜 ...
分类:
编程语言 时间:
2017-10-03 21:10:25
阅读次数:
249
题目链接:http://poj.org/problem?id=2785 题意:4个集合里各取一个数使得之和为0,问有多少种取法 题解:暴力4个for会超时,所以两个合并一下,然后搜索呗 ...
分类:
其他好文 时间:
2017-10-02 14:28:35
阅读次数:
163
题意:给定一个n个数的序列,完成以下3个操作: 1.给定区间求和 2.给定区间对x取模 3.单点修改 对一个数取模,这个数至少折半。于是我们记一个最大值max,如果x>max则不做处理。 ...
分类:
其他好文 时间:
2017-10-01 23:00:25
阅读次数:
248
题意:有n杯盐溶液,给定每杯里面盐的质量以及盐溶液的质量。问你有多少种方案选择一个子集,使得集合里面的盐溶液倒到一个被子里面以后,浓度为A/B。 折半枚举,暴力搜索分界线一侧的答案数,跨越分界线的答案,一侧用map存下来,枚举另一侧去统计。 ...
分类:
其他好文 时间:
2017-10-01 21:08:27
阅读次数:
274
一. 查找 想要知道某一个数据在数组中的位置。(从一个数组中查找某一个数据,数据存在的话,同时返回角标号,没有相应的数据,返回-1.) 介绍数组常见的操作,实际上就是功能化的函数(求最值,排序,查找)。一旦说到函数,就涉及到两个明确,返回值和输入。这里要得到的是位置,也就是索引号。我们要知道某一个数 ...
分类:
编程语言 时间:
2017-10-01 12:25:23
阅读次数:
186
本文通过一道01背包问题的变种介绍了折半枚举的思想和实现思路,并顺便介绍了另一种01背包变种的求解方法。 ...
分类:
其他好文 时间:
2017-09-30 22:50:48
阅读次数:
302
题目大意:有不超过14个点组成的完全图,给出邻接矩阵,问是否存在长度为W的欧拉回路? 数据范围:n<=14, w<=1e15; standard input/output 7 s, 256 MB 分析:直接暴力是14!的复杂度,显然不能通过; 考虑折半搜索,我们取0号点为起点,然后把所有的点分成两半 ...
分类:
其他好文 时间:
2017-09-29 21:08:21
阅读次数:
226