![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索剪枝系列
文章平均质量分 62
phython96
ACM退役~
展开
-
双向广搜 8数码问题
转载自:http://blog.sina.com.cn/s/blog_8627bf080100ticx.html Eight 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 讲到双向广搜,那就不能不讲经典的八数码问题,有人说不做此题人生不完整 。 所谓双向广搜,就是初始结点向目标结点和目标结点向初始结点同时转载 2017-06-27 22:47:40 · 437 阅读 · 0 评论 -
搜索训练1 [8数码问题]
HDU1043、以及POJ1077上面都有这道题目,可以说是搜索里的非常经典的题目了。poj上面的数据真的是弱,由于只有一组数据,简单bfs直接就可以过掉。前前后后捣鼓了能有6个小时,才把这道题目在HDU上以4500ms的微弱优势通过。。。。。。。我的思路一开始是简单的bfs,在HDU上超时。然后改用A*搜索,尝试了3种启发函数,才微弱的过掉。。。。我看别人的代码也是A*算法,而且启发原创 2017-06-28 11:14:01 · 278 阅读 · 0 评论 -
HDU2485 Destroying the bus stations 迭代加深搜索
Destroying the bus stationsTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3140 Accepted Submission(s): 1045Problem Description原创 2017-08-24 09:01:45 · 268 阅读 · 0 评论 -
codeforces D.MADMAX 动态规划、记忆化搜索
题意 给出一个DAG,每条边上有权重(权重是小写字母的ASCII码),现在两位同学A和B分别位于某两点上(可以相同),其中A和B轮流走,但是每人所走的边权不能变小,走到不能走为止就输。 A先走,询问最后谁会赢。题解 比较明显是一个DP,定义dp[i][j][c]表示轮到i点的人走,另一个人在j点,下一次要走的边的权重必须>=c,i点的人是否能赢。递推方原创 2018-01-30 20:01:04 · 261 阅读 · 0 评论 -
洛谷P1120小木棒 爆搜+剪枝
题解 暴搜的思路容易想到,但是剪枝细节有很多,数据很强。 搜索思路: a. 用dfs(left_num,left_len,bound)表示当前还需要拼left_num根木棒,当前正在拼的木棒还剩left_len长度,搜索是从大往小搜索,并且当前搜索到了bound位置。 b. 每次拼一根木棒都相当于是从大到小搜索一遍所有可用的小木棒。 剪枝的思路: 1. 拼小木原创 2018-02-02 19:57:00 · 420 阅读 · 0 评论 -
codeforces gym-101755 D-Transfer Window 二分图匹配、递归
题目题目链接题意告诉了n名球员的交换关系,你现在拥有k名球员,你想要其他k名球员(有的在自己队里)。输出一种交换方案。题解第一步、求闭包。我们需要在原来的交换矩阵上跑可达闭包,即G[i][j]G[i][j]G[i][j]的含义是jjj是否能通过iii的一些交换得到,例如用iii交换aaa,再用aaa交换bbb,再用bbb来交换jjj。预处理闭包的时间复杂度...原创 2018-04-02 11:17:58 · 651 阅读 · 0 评论 -
codeforces gym-101673 Twenty Four, Again 24点,枚举表达式树过题
题目题目链接题意给出4个数字,让你任意指定运算符(3个)、增加括号、交换数,问组成24点的代价最小是多少。增加括号:代价为1。交换数的顺序:代价为2。题解方法就是暴力枚举,我们可以先枚举数的顺序(4!4!4!种可能性),再枚举运算符类型(43434^3种可能性),再枚举表达式树的结构(555种情况,计算可以使用卡特兰数计算)。 然后在把枚举的数的顺序、运算符填...原创 2018-04-12 21:37:45 · 703 阅读 · 0 评论