折半搜索
weixin_44019404
这个作者很懒,什么都没留下…
展开
-
POJ 3977 折半搜索
折半搜索。学到了map.lower_bound;先做前面再做后面,就是基本的折半搜索,难点在于如何去处理,不能为空集。这里我每一次状态都是从1开始,表示从不为空。然后单独再每一半搜索中,更新一下最值。然后再合起来更新。#include<iostream>#include<cstring>#include<algorithm>#include&l...原创 2019-03-19 18:34:52 · 161 阅读 · 0 评论 -
折半搜索
全部枚举肯定不科学。我们试着枚举两个,a,b;a+b=-c-d就是我么要找到的四个数字了。两边分别枚举,n^2的运算量,再排序,二分搜索就好了,相比起四次方的运算量来说,要很多了。#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include&...原创 2019-03-17 11:21:15 · 1056 阅读 · 0 评论 -
超大背包问题
运用二进制,折半搜索,其实我觉得本质就是状压思想,,,枚举前一半所有情况并保存。然后排序保障总质量越大,价值越大。这里相当于贪心。可以证明的,如果在一堆一一对应的数里面,只取一个,另外一个数越大才越有可能是最优解。这个思想大概只能用在只取一个上面。再枚举后半部分。算出每一种枚举方式的总质量,w-wi就是他在前一半的质量,二分搜索一下,就能找到总质量和不大于w的最大价值了。emmmm...原创 2019-03-17 12:27:59 · 455 阅读 · 0 评论