A – EIGHT
八数码转换问题……
经典bfs……
关键问题:
1.状态的保存(见longwuxu该题解题报告中的全排列Hash表示)
2.bfs中标记数组的处理:
bfs中有两个标记数组,一个是标记队列中节点的标记数组isadd[],还有一个是标记已訪问节
点标记数组isvis[]。前者在入队列的时候进行标记。而后者则要在出队列的时候才进行标记
用isadd标记的时候队列中不会出现反复的节点。而用isvis标记的时候队列中会出现反复的
节点。所曾经者要比后者的效率高。所占用的空间也要少……一般採用isadd[]数组标记较优
随机推荐
- 记录一次lnmp故障报告
业务架构图: nginx 状态监控图: 本次故障的表现为:前端php页面无法打开,空白页或者502错误. nginx中php配置如下: location ~ \.php$ { root /xxx/xx ...
- hdu 5184(数学-卡特兰数)
Brackets Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- spring quartz job autowired 出错 null pointer
什么情况下才能用autowired? 当当前类属于spring IOC容器管时候就可以,比如在applicationContext.xml里有定义 就是说在spring上下文里能够找到 但是比如qua ...
- centos6.5 的rpm 可以来这边找
http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-i386/gcc-4.8.2-16.3.fc20/
- 洛谷 P1093 奖学金【三级结构体排序】
题目描述 某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金.期末,每个学生都有3门课的成绩:语文.数学.英语.先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高 ...
- HDU 5938 Four Operations 【字符串处理,枚举,把数字字符串变为数值】
Problem Description Little Ruins is a studious boy, recently he learned the four operations! Now he ...
- Placement new的用法及用途【转】
什么是placement new? 所谓placement new就是在用户指定的内存位置上构建新的对象,这个构建过程不需要额外分配内存,只需要调用对象的构造函数即可.举例来说: class foo{ ...
- 带WHERE子句的DELETE语句
由于前面我们执行“DELETE FROM T_Person”语句将数据表T_Person中的数据全部 删除了,为了演示带WHERE 子句的DELETE 语句,我们需要重新插入一些数据到T_Person ...
- [BZOJ2753]滑雪与时间胶囊
第一问直接把可以走的边连起来bfs一遍即可 第二问可以用类似kruskal的方法,只不过排序的依据应该变为第一关键字为终点高度(从大到小),第二关键字为边权(从小到大),只排序可以走的边 因为同样高度 ...
- Java压缩字符串的方法收集
说明: 1.一般来说要实现压缩,那么返回方式一般是用byte[]数组. 2.研究发现byte[]数组在转成可读的String时,大小会还原回原来的. 3.如果采用压缩之后不可读的String时,互相转 ...