随笔分类 -  CH(AcWing)

摘要:栈的入门题,主要考察了栈的基本操作,用递归模拟实现即可 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cstdlib> 6 using namespa 阅读全文
posted @ 2019-03-31 13:16 AD_shl 阅读(342) 评论(0) 推荐(0)
摘要:这道题是洛谷“八数码难题”的升级版,洛谷只要求出最少步数,而本题要输出结果。 我们在搜索的时候记录每一个状态的前驱,最后输出的时候递归即可。 我们采用A*算法进行搜索,设计估价函数为当前状态每个点与目标状态每个点的曼哈顿距离之和。在搜索时建立一个小根堆维护即可。 代码细节比较多,注意对细节的处理。可 阅读全文
posted @ 2019-03-31 10:27 AD_shl 阅读(341) 评论(0) 推荐(0)
摘要:最短路是一个妇孺皆知的算法,可以用多种方法解决。但是第k短路…… 以Dijkstra为例,对于s->t的第k短路,即t点在堆中第k次取出的结果。 于是我们想到了一个朴素的算法:用Dijkstra反复执行,直到t点在堆中第k次取出时结束。 考虑一下优化:用A*算法优化。 根据A*估价函数的设计原则,x 阅读全文
posted @ 2019-03-30 16:05 AD_shl 阅读(469) 评论(0) 推荐(0)
摘要:一道难得的搜索好题,题目大意很简单,这里不再赘述,主要说一下思路 当然普通的bfs答案是正确的,但是在CH上评测会TLE一个点,所以我们采用效率更高的双向bfs 从初始状态和目标状态分别搜索,建立两个队列,分别扩展状态。如果一个队列扩展的状态已经被另一个队列搜索过了,那么便出现答案了。 另外,使用m 阅读全文
posted @ 2019-03-24 09:44 AD_shl 阅读(270) 评论(0) 推荐(0)
摘要:这是一道裸的广搜题吧…… 可能是《算法竞赛进阶指南》最水的一道题了…… 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <queue> 5 using namespace std; 6 queue<i 阅读全文
posted @ 2019-03-23 20:17 AD_shl 阅读(302) 评论(0) 推荐(0)
摘要:这是一道广搜题,难点在于对题目的理解和对细节的处理。 对于一个节点,可以向左上、左下、右上、右下四个位置扩展,根据地图的形态确定每一步扩展的代价。 将代价最小的节点放在队头,这样用双端队列来实现。每个节点最多进出队列一次,所以时间复杂度为O(r*c) 1 #include <iostream> 2 阅读全文
posted @ 2019-03-23 15:21 AD_shl 阅读(347) 评论(0) 推荐(0)
摘要:搜索绝对是解决数独问题的一大利器。 我们将不完整的数独读入。如果爆搜的话显然凉凉O(2^81)? 想一下人类在玩数独的时候会怎样——找出填数比较多的行与列的交点,因为这样能排除更多的非法选择。 放到搜索上就能减小搜索树的规模,降低时间复杂度。 我们统计每一行、每一列已经填完的数的数量,再统计每一行、 阅读全文
posted @ 2019-03-23 14:35 AD_shl 阅读(314) 评论(0) 推荐(1)
摘要:乍一看,我想爆搜,但是时间复杂度O(2^n),凉凉。 所以我们考虑优化,用双向搜索解决。 将读入的数据降序排列,从中间一分两半,对前一半进行一次枚举,枚举可能的情况,用一个数组记录并去重。 再枚举后半段的情况,并对每一种情况在左半部分进行一次二分查找即可。时间复杂度为O(2n/2log22n/2)≈ 阅读全文
posted @ 2019-03-23 14:24 AD_shl 阅读(264) 评论(0) 推荐(0)
摘要:这道题算是搜索和状压的结合吧,作为状压的入门题还是不错的,能让人初步了解状压的含义及应用。 对这张图进行一遍拓扑排序,然后状压统计(我用了bitset)。 注意读入,因为我的读入优化挂掉了…… 1 #include <iostream> 2 #include <cstdio> 3 #include 阅读全文
posted @ 2019-03-22 23:19 AD_shl 阅读(313) 评论(0) 推荐(0)
摘要:一道很基础的深搜题,数据范围不大,稍加剪枝即可通过。 将重量降序排列,对于已经选了的车,尝试当前的猫能不能坐,如果全部尝试失败,则另用一辆车。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 typedef lon 阅读全文
posted @ 2019-03-22 22:39 AD_shl 阅读(387) 评论(0) 推荐(0)