1514: PacksTime Limit: 10 SecMemory Limit: 128 MBSubmit: 61Solved: 4[Submit][Status][Web Board]DescriptionGive you n packs, each of it has a value v a...
分类:
其他好文 时间:
2015-04-02 22:31:47
阅读次数:
209
折半枚举降低暴力搜索的复杂度 在有序数组中用二分查找方式统计有多少值为a的元素的写法
分类:
其他好文 时间:
2015-03-04 20:57:36
阅读次数:
154
这道题乍一看是普通的01背包,最最基础的,但是仔细一看数据,发现普通的根本没法做,仔细观察数组发现n比较小,利用这个特点将它划分为前半部分和后半部分这样就好了,当时在网上找题解,找不到,后来在挑战程序设计上找到了这个题,就拿来引用一下挑选物品的方法总从2^n中,直接枚举肯定不行,因为n最大为40,但...
分类:
其他好文 时间:
2014-12-14 11:56:57
阅读次数:
216
话说这是俺们学校暑假集训完的一道题,刚看到以为是到水题,后来发现者复杂度也太大了,受不了了,比赛完也没搞出来,然后欣爷说这是折半枚举。然后就摸摸的学了一下,又把这道题写了一下,所谓折半枚举就是先算出来一半,然后用二分查找看看能不能搞到这一发状态,可以的话就是可以了,题意:给你两个数n,k,下面再给你n个数,表示你现在有的硬币的面值,每种硬币面值的有两个,看是否可以支付k题解思路:首先以为只有三种状...
分类:
其他好文 时间:
2014-11-26 22:39:54
阅读次数:
216
各有n个整数的四个数列A、B、C、D。要从每个数列中各取一个数,使四个数的和为0。求出这样组合的个数。输入n = 6A = { -45, -41, -36, -36, 26, -32 }B = { 22, -27, 53, 30, -38, -54 }C = { 42, 56, -37, -75, ...
分类:
其他好文 时间:
2014-10-29 12:47:28
阅读次数:
177
题目链接:http://poj.org/problem?id=2785思路: 朴素的枚举算法时间复杂度到了O(n^4),肯定会超时,这里我们用到了折半枚举的方法~ 原理就是先算前两个数组的各个元素进行枚举的和,排序后,然后再枚举后面两个数组各个元素的和,是这两块的和为0,而这部操作可以用到二分搜索....
分类:
其他好文 时间:
2014-08-30 11:12:19
阅读次数:
229
题目大意是,一个集合中有N个元素,找出最大的S,满足条件A+B+C=S,并且这四个数都属于该集合,N不超过1000.
如果直接枚举O(n^4)显然复杂度太高,将等式转化一下A+B=S-C,此时分别对左右两边的值进行枚举,这一步复杂度为O(n ^ 2),接着就用二分法查找满足该等式的最大S值,
复杂度为O(n^2*log(n))。
#include
#include
#in...
分类:
其他好文 时间:
2014-07-23 16:39:22
阅读次数:
156