![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
文章平均质量分 86
Jason_Wcz
这个作者很懒,什么都没留下…
展开
-
UVA 10603 FILL
搜索不局限于图、迷宫,凡用状态来表示的,通常都可用。故记录此题。hint:由于此题答案求倒水量最少,而非倒水次数最少,因此,用优先队列来存储状态,比较的依据也是各状态的倒水量。如果是一般的求倒水步数,那就是一般的队列。#include#include#include#include#includeusing namespace std;const int m原创 2017-09-04 12:21:44 · 187 阅读 · 0 评论 -
UVA 1601 The Morning after Halloween (优化BFS)
思路就是抽出可以走的路来形成一张新的图,因为题目保证了所有空格连通,否则就超时。还有这题一次可以移动所有字母,这在移动的时候,就类似于FILL那题的倒水,用n层循环来组合所有的可能。其次,如果不用以上的办法,用双向BFS也可以(书上是这么讲的,但我不确定不经过建新图的优化,双向BFS是否会超时,我没有验证过),还有A*算法也可以(这玩意以前听说过,这次趁机学一波)#include#i原创 2017-09-05 12:43:05 · 193 阅读 · 0 评论 -
UVA11212 Editing a Book (IDA*)
对于可以用回溯法求解但解答树的深度没有明显上限的题目,可以考虑用迭代加深搜索(iterative deepening)。如果设计出以一个乐观估价函数,预测从当前结点至少还要扩展基层结点才能得到解,则迭代加神搜索编程了IDA*算法。——《算法竞赛入门经典》p207讲真看书里第一个埃及分数问题,看得我是一脸懵逼。感觉好像是这么个道理,但是没懂到底什么意思。接着就跳过先看了下面那道例题,也就是Edi原创 2017-09-10 16:55:26 · 206 阅读 · 0 评论 -
HOJ 1868 八数码 双广搜
用《算法竞赛入门经典》里的两种判重映射都超时,最后网上搜才知道,数据严的时候应该用双向BFSpo下网上找的代码#include #include #include #include #include #include #include using namespace std; #define Maxn 400000 #define原创 2017-08-30 18:01:03 · 189 阅读 · 0 评论 -
生命之树 (搜索 || 树形DP)
题目链接搜索: 直接把学长的题解拉过来吧。 确定一个点为树根,同时作为初始点累加权值,来寻找包括这点的最大连通权值和。对每个子节点如果其对应子树不存在正连通,不予考虑;否则,累加子树中包含这个子节点的最大连通权值和。可以看出这是个分治策略,可以递归实现。设 F(x)为 x 子树中包含点 x 的最大连通权值和,xi为 x 子节点 ( 分析一下复杂度,对每个点进行一次搜索,每次搜索 O(n...原创 2018-03-06 16:36:50 · 178 阅读 · 0 评论 -
PAT (Advanced Level) 1053 Path of Equal Weight (dfs)
这题很简单,没有坑点。记录这题的原因是,第一次提交最后一个case报了段错误,我从上到下代码读了个遍,并不觉得哪里有问题,后来就在网上找,找到个跟我一样,在比较函数里,如果两个path相同,返回的值是true,导致了段错误。查了下大概意思是:只有严格的大于,才应该返回true,小于和等于都归于false详细解释:调用sort段错误问题#include<iostream>...原创 2018-08-31 11:46:19 · 89 阅读 · 0 评论