路漫漫其修远兮,吾将上下而求索——屈原|

tsrigo

园龄:3年7个月粉丝:15关注:10

随笔分类 -  搜索

八数码问题-记三种思路
摘要:八数码问题的难点是如何存储状态,进而判断某个状态是否访问过,这里记录一下我见到的几种方法 思路一 :bfs + unordered_map #include<iostream> #include<algorithm> #include<unordered_map> #include<queue> u
63
0
0
骑士精神笔记(IDA*)
摘要:万恶之源 做法 这道题就是一道很典型的搜索题,可以像滑雪那样用深搜一路枚举到最后复原,也可以像马的遍历那样用广搜逐层扩展的一步步的拓展。但是,这道题的深度可能非常深,需要枚举的情况又非常多,状态也很难保存(当然是可以保存的),单纯的深搜和广搜都很难完成这题,因此迭代加深诞生了!! 迭代加深简单来说就
31
0
0
P1434 滑雪(DFS)笔记
摘要:万恶之源 P1434 [SHOI2002]滑雪 做法 这道题就是在一个二维的序列中,求最长的一条一维的递减子序列的长度。这道题用深搜做会很方便,不撞南墙不回头,对与任意一点只要周围有高度更小的点就一直深搜下去,搜索的层数即是其最大长度,最后输出各个点的最大长度的最大值即可。 需要注意的点 如果直接像
46
0
0
P1443 马的便利(BFS)笔记
摘要:万恶之源 马的遍历 解法 这道题几乎就是一个裸的BFS,以马为起点遍历宽搜整个棋盘即可,层数即为到某点的最短步数,最后输出即可。 若任意两个状态之间转移的代价都相同,那么BFS第一次访问到目标状态时,就是从起始状态到目标状态的最小代价。此题恰好移动代价都相同,如果不相同需要优先队列优化。 额外注意的
79
0
0
IDA*、操作打表、并行处理-The Rotation Game HDU - 1667
摘要:万恶之源 优秀题解 用文字终究难以穷尽代码的思想 思路 每次操作都有八种选择,相当于一棵每次延申八个子节点的搜索树,故搜索应该是一种方法。而这题要求求最少步数,我们就可以想到可以试试迭代加深搜索(但其实我做它因为它是书本的习题)。再搭配一个估值函数来剪枝就很香啦。 轮换方块(操作打表) 我的原始思路
35
0
0
IDA*、剪枝、较难搜索、扫描——DNA sequence HDU - 1560
摘要:万恶之源 ###翻译 题意就是给出N个DNA序列,要求出一个包含这n个序列的最短序列是多长 这是一道搜索题,为什么呢?从样例可以感受到,我们应该从左往右“扫描”,从n个DNA序列中取出某个特定的字母,直到n个序列都被取空。题目便是要求这个“取出”次数的最小值。而我们每次都选择A,T,C,G中的其中一
212
0
2
点击右上角即可分享
微信分享提示
深色
回顶
收起