随笔分类 -  Competitive Programming / 搜索算法

摘要:八数码(bfs)关于八数码问题的三种实现方式 #include<cstdio> #include<cstring> using namespace std; typedef int State[9]; const int maxstate = 1000000; State st[maxstate], goal; i 阅读全文
posted @ 2025-08-11 20:15 雾岛春颂 阅读(14) 评论(0) 推荐(0)
摘要:UVa11212(IDA*)UVa11212 解题思路: 本题n的规模最多为9,即答案最多为9,因此可以考虑迭代加深搜索,让深度d不断增大寻找答案。同时,观察发现,将任何一段连续序列拼接到另外某处,整个序列中最多只有3个元素的后继元素会发生改变,因此可以设计h()函数,求序列中的不符合目标答案顺序的个数,倘若3d+h() > 阅读全文
posted @ 2025-08-07 21:49 雾岛春颂 阅读(8) 评论(0) 推荐(0)
摘要:UVa1374(IDDFS算法)UVa1374 解题思路: 本题跟"埃及分数"有点相似,可以考虑迭代加深搜索,所谓迭代加深搜索,就是在寻常dfs上从小到大限制它的搜索深度,这个"深度",就是我们要找的答案。对于本题,每一步的操作就是让任意两个指数相加或者相减,且不重复。我们可以设d为当前深度并从0开始,maxd作为每一次搜索的深度 阅读全文
posted @ 2025-08-05 22:35 雾岛春颂 阅读(32) 评论(0) 推荐(0)