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