
康托定理
aozil_yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 1043 Eight ((八数码问题)逆向BFS + 康托定理判重)
题意不说了,就是一个八数码思路:很暴力,直接把空格看成0,然后把九个数字连接起来,用这个数来代表这个状态。然后正常来想这个题目时,肯定是 从给定状态到目标态来bfs搜索,但是这样做死活爆内存 (好难受= =)我们需要转个弯,从目标态向给定态搜索,这样可以直接预处理打表了。正好这是一个9个不同数字的排列,用康托定理完美去重。注: 用c++交的,G++还是爆内存= =#in原创 2017-01-23 21:58:55 · 848 阅读 · 0 评论 -
POJ 1077 Eight (正向BFS + 康托展开)
题意不说了 八数码问题:和上篇博客 HDU 1043 题目是一样的!但是做法上有些出入。HDU 时间限制比较长,而且是多组输入,所以要逆向bfs 进行打表处理。而POJ 1077 这个题目,时间是1S ,单组输入。因此输入一组 搜索一组即可。9个数的排列 判重用康托展开来做。但是这个队列要自己写,STL的queue 会超时。自己写的队列,在输出时 能很方原创 2017-01-24 16:25:24 · 814 阅读 · 0 评论 -
蓝桥杯 历届试题 九宫重排 (八数码问题--康托展开去重 + bfs搜索)
题意:简单的八数码问题:给你两个状态 求最少步数。可以把点变成9:这样,9个数都不一样,相当于是阶乘的排列。直接用bfs 搜索 康托展开去重即可。#include #include #include #include #include #include #include #include #define Siz(x) (int)x.size()#defi原创 2017-04-20 20:45:13 · 1689 阅读 · 2 评论