I. 原题中文大意魔板由2*4个方块组成,用1到8的数字表示不同的块。 其初始状态是 1 2 3 4 8 7 6 5对魔板可进行三种基本操作,这三种基本操作,可将任一种状态装换成另一种状态。A (上下行互换)B (行循环右移一格)C (中间四块顺时针转90)8 7 6 51 2 3 44 1 2 ....
分类:
其他好文 时间:
2014-10-17 01:43:03
阅读次数:
294
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1195思路:广搜~ 。。 我用的双向广搜优化的。。。发现了一个非常好的双向bfs的模板 //双向广搜代码框架 struct State { }; //状态 queueque[2]...
分类:
其他好文 时间:
2014-10-12 19:25:28
阅读次数:
198
一般来说,广搜常用于找单一的最短路线,或者是规模小的路径搜索,它的特点是"搜到就是最优解",而深搜用于找多个解或者是"步数已知(比如3步就必须达到条件)"的问题,它的空间效率高,但是找到的不一定是最优解,必须记录并完成整个搜索,故一般情况下,深搜需要非常高效的剪枝(优化).像搜索最短路径这些的很明显...
分类:
其他好文 时间:
2014-10-12 16:46:18
阅读次数:
222
题目大意:输入一个二维网格,每个网格单元中只有两种字符'*'和'@','@'表示油田,'*'表示土地。求出网格中共有多少块油田?注意:所有横向,竖向,对角线方向连同的
油田算一块油田。
算法思想:
广度优先搜索,扫描每一个网格,判断该网格是否是油田且未被标记,若是则计数加1并且进行广搜标记所有与其相连通的油田,若不是则只标记。扫描完所有的网...
分类:
其他好文 时间:
2014-10-11 14:29:25
阅读次数:
181
题目:nyist 999 师傅又被妖怪抓走了
分析:在一个图中只要看到D点和E点就行的最小步数,看到的定义是:也就是说两个人在同一行或者同一列,并且中间没有障碍物或者没有其他人就可以看到对方。
所以可以先预处理地图,把D点和E点所在的行列的‘ .’扩展为d和e,然后只要搜到d和e就可以,问题是只有d和e同时搜到才行,直接广搜肯定不行,我们可以在搜到d点之后然后在从当前点广搜e点,或者e...
分类:
其他好文 时间:
2014-10-10 12:00:54
阅读次数:
249
题目用优先队列优化普通的广搜就可以过了。#include#include#includeusing namespace std;#includestruct pq{ int x,y,val; friend bool operator b.val; }};priority_queu...
分类:
其他好文 时间:
2014-10-09 02:41:07
阅读次数:
148
题目大意:给定一个由‘W','I','N','G'构成的字符串,给定一些规则,这些规则可以将两个字符合成为一个,例如"II"可以合成为'W',"WW"可以合成为'I'或者'N'
求这个字符串可以最终合成为哪几种字符
看到这题我想到了广搜。。。其实没必要,动归完全可以解决
令f[i][j][k]为从i开始的j个字符是否可以合成为字符[k]
然后j从外层循环,剩下的全部预处理,怎么暴力怎么转移...
分类:
其他好文 时间:
2014-10-04 17:25:07
阅读次数:
234
终于学习了传说中的A*搜索~...先通俗的说一下A*搜索的原理,然后用代码实现~A*搜索是在基于广搜的基础上的一种启发式搜索方式(我也不知道启发式是什么意思),可以大大降低搜索时间,找出相对正确的最优路径。这里用到了特殊的存储结构---优先队列,可以优化将查找的复杂度从O(n)有化成O(logn);...
分类:
其他好文 时间:
2014-10-01 22:18:11
阅读次数:
289
http://poj.org/problem?id=3126题意:给你两个四位数a,b,从a开始 每次只能改变上一次数的其中一位,问至少需要几步才能得到b分析:求最小路 典型的广搜 表面上是 40入口的bfs 但是除去有的数不是素数 入口数远小于40 可以写一个 判断一个数是否为素数的函...
分类:
其他好文 时间:
2014-10-01 13:23:51
阅读次数:
248
题意: 之前做过的所有题都是 在一个平面 上搜索 。 本题很新,在一个三维空间里 ,首先 l x y 分别代表 l 层 每一层有 x 行 y 列 问从 S 开始 走到 E 最小步是多少 显然用广搜,只是多了一个向上向下的搜索。注意: 所谓广搜 ,是一层一层...
分类:
其他好文 时间:
2014-09-27 19:37:00
阅读次数:
292