题目链接:https://vjudge.net/problem/POJ-3977 题意:给一个大小<=35的集合,找一个非空子集合,使得子集合元素和的绝对值最小,如果有多个这样的集合,找元素个数最少的。 思路:显然,可以用折半搜索,分别枚举一半,最大是2的18次方,复杂度能够满足。因为集合非空,枚举 ...
分类:
其他好文 时间:
2019-10-21 11:14:54
阅读次数:
218
$meet-in-the-middle$(又称折半搜索、双向搜索)对于$n<=40$的搜索类型题目,一般都可以采用该算法进行优化,很稳很暴力。 $meet-in-the-middle$算法的主要思想是将搜索区域化为两个集合,分别由搜索树的两端向中间扩展,直到搜索树产生交集,此时即可得到我们的合法情况 ...
分类:
编程语言 时间:
2019-10-13 18:47:32
阅读次数:
211
折半搜索 (meet in the middle) CF888E Maximum_Subsequence / reference: translation: solution: 考虑到dfs的效率很低很低而且mod数在1e9的范围,肯定要用一个stl的容器啊(set) 2的35次方会超时,考虑折半搜 ...
分类:
其他好文 时间:
2019-10-08 12:21:29
阅读次数:
96
答案=总数 无0 无1 无2+无01+无02+无12 无012 直接详细讲无0和无2 无0为 01和11,无2为01和00,显然二者方案数相同,以下考虑无0 考虑折半搜索,后半段搜索,二进制点权0的位置,保证后半段构成的无0边的基础上 可以得出一个S集合,表示集合内的点随意选择,不在集合内的点只能为 ...
分类:
其他好文 时间:
2019-10-07 11:37:24
阅读次数:
86
一直对状压dp怀有一种恐惧感 不会打,不会调,关键是不会调 做了这两道题,虽然还是不会状压dp,但总比之前好了一些 y 普通状压应该很好打 复杂度$O(2^d*n*(n+m))$ 那么该怎么优化, 折半搜索,你起点是确定的,枚举中间点,这样复杂度就降低成$O(2^{\frac{d}{2}}*n*(m ...
分类:
其他好文 时间:
2019-10-01 23:07:29
阅读次数:
166
以作者的水平为准 基础算法:枚举——>倍增 差分(前缀和)——>二维 贪心 分治:归并排序(逆序对) 二分答案 二分查找 快速排序——>离散化 递归/递推 搜索:深搜(所有方案),宽搜(最优解) DFS优化:迭代 最优性剪枝/可行性剪枝/搜索顺序 记忆化搜索 折半搜索 A*/IDA* BFS优化:双 ...
分类:
其他好文 时间:
2019-09-26 23:47:06
阅读次数:
194
CF888E Maximum Subsequence 有一种叫做折半搜索的好东西 我们把数列劈成两半,分别搜索,再合并 合并可以排序+二分或者排序+单调性 代码极短 ...
分类:
其他好文 时间:
2019-09-15 16:48:18
阅读次数:
85
二叉搜索树的概念 从前面讨论折半搜索的性能中可知,如果每次从搜索序列的中间进行搜索,把区间缩小一半,通过有限次迭代,很快就能通近到所要寻找的元素。进一步,如果我们直接输入搜索序列,构造出类似于折半搜索的判定树那样的树形结构,就能实现快速搜索。这种树形结构就是二又搜索树。 二又搜索树(binary s ...
分类:
编程语言 时间:
2019-05-20 19:13:35
阅读次数:
127
题目链接: "luogu2962" 这个题还可以折半搜索(似乎复杂度更有保证),不过作为练手更适合写异或方程组的高斯消元 异或方程组的高斯消元一般是如下形式 $$ (a_{i,1} x_1)\text^(a_{i,2} x_2)\text^\cdots\text^(a_{i,n} x_n)=y_n ...
分类:
其他好文 时间:
2019-05-04 10:01:23
阅读次数:
122
[toc] 介绍 在计算机科学中,二分搜索(英语:binary search),也称折半搜索(英语:half interval search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找 ...
分类:
编程语言 时间:
2019-02-04 15:30:12
阅读次数:
177