码迷,mamicode.com
首页 >  
搜索关键字:剪枝    ( 1397个结果
HDU ACM 1495 非常可乐->BFS倒水问题
题意:a,b,c三个数,分别代表可乐,两个杯子,三个容器可以互相倒,能不能把a平分,能的话输出最小步数,不能输出NO。 分析:求最小用BFS,对6种倒法进行BFS。另外如果a是奇数的话可以剪枝,因为不能平分。 #include #include using namespace std; struct Node { int a,b,c; int s; //步数 }; bool v...
分类:其他好文   时间:2015-06-08 13:26:05    阅读次数:123
回溯法解0-1背包问题(王晓东算法例题)
给定n种物品和一背包。物品i的重量是wi,其价值为vi,背包的容量为C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 整个解的空间相当于一个二叉树,左边是0,代表不取这个物品,右边是1,代表取这个物品,然后进行dfs,回溯的时候修改。 注意,这里应该有两个剪枝,我这里只写了一个。 #include #include #include using namespace std; ...
分类:编程语言   时间:2015-06-05 00:46:43    阅读次数:133
hdu 1010 Tempter of the Bone 深搜+剪枝
题意:在一个坐标内,给定起点和终点,问能否恰好在t时刻到达终点。 以前很少写搜索题,所以看到这个题,就按照普通的深搜写了一下,交上去超时了。后来在网上搜了一下才知道,要剪枝才行。可是,我以前从没写过剪枝,不知道怎么剪,就按照别人的思路往下想。看懂以后,我对剪枝的理解是:对于一些没有必要继续搜索的路径,不再往下深搜,提前返回到上一层。花了半天时间调试代码,终于AC了。     ...
分类:其他好文   时间:2015-06-04 13:49:13    阅读次数:108
csu1651 Weirdo 最均匀路径
题目链接: csu1651 题解思路 : 用到kruskal算法的思想: 枚举这条路径最小的边作为kruskal算法的起始边 当某条边加入一个 边集  后满足起点和终点在一个集合,即可得到一个答案 这些答案的最小值即为answer 中间会用到几个剪枝 代码: #include #include #include #define MAXN 1...
分类:其他好文   时间:2015-06-04 11:54:36    阅读次数:101
回溯法的解空间表示方法
回溯法解题时通常包含3个步骤: 1. 针对所给问题,定义问题的解空间; 2. 确定易于搜索的解空间结构; 3. 以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。 对于问题的解空间结构通常以树或图的形式表示,常用的两类典型的解空间树是子集树和排列树。当所给的问题是从n个元素的集合S中找...
分类:其他好文   时间:2015-06-04 11:43:34    阅读次数:222
uva 140
就是一道 DFS剪枝+枚举全排列 的题目 我用了vector来存点对的,不用考虑越界的问题。不过效率貌似不如直接用数组高。 WA了三次,花了好长时间找原因╮(╯▽╰)╭ 多么弱智的错误啊=。= WA代码#include #include #include #include #include ...
分类:其他好文   时间:2015-06-02 09:22:31    阅读次数:143
FZU - 1692 Key problem 矩阵快速幂
题目大意:又n个人围成一圈玩游戏,游戏有m个回合。每个人每回合能得到(L * 左边那个人的苹果数量) + (R * 右边那个人的苹果数量),问最后每个人得到的苹果数量解题思路:矩阵的话比较好些,就不解释了,关键是怎么将矩阵乘法的复杂度下降,因为每个人每回合后矩阵变化都是相同的,所以只需要求出第一行就可以了,经过偏移就可以得到其他行的了 这里还有一个剪枝点,传参时要用引用,不然会超时。。。#inc...
分类:其他好文   时间:2015-06-01 09:44:42    阅读次数:127
HDU 1728 逃离迷宫 单方向BFS 或者DFS加剪枝
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 18519    Accepted Submission(s): 4463 Problem Description   给定一个m × n (m行, n列)的迷宫,...
分类:其他好文   时间:2015-05-27 10:23:40    阅读次数:141
线段树 区间更新 和 查找时更新时候的探讨。
我们都知道区间更新时候有个lazy 标志。而这个lazy 标志 我们要使得其可以理论重叠。即使操作不能重叠。也尽可能让其重叠。比如:一道修改区间>x的值为gcd(x,val)的操作题。首先针对查找区间>x 这种查找。我们在节点上存储 区间最大值 作为剪枝。另外针对求gcd(x,val)操作。用向量存...
分类:其他好文   时间:2015-05-26 21:14:25    阅读次数:142
回溯法--基本思想
回溯法--基本思想 有些问题的解有限但是有很多种可能性,解需要穷尽搜索才能获得,为了减少搜索范围,进行剪枝,避免所有的搜索情况。当遍历到某种情况的时候,满足剪枝条件,则停止遍历此种情况,反之,继续遍历下一个。来自为知笔记(Wiz)
分类:其他好文   时间:2015-05-26 20:49:45    阅读次数:342
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!