摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4528方法:地图输入接收完成后,扫面数组,把所有可以看到D和E的位置都标记了,d表示可以看到D,e表示可以看到E,b表示两个都可以看到,这一步放在广搜前的初始化里面。在广搜时,树中的每一个状态节点有3个信息,图中坐标x y,到当前有没有已经看到D getD,到当前有没有已经看到E getE,和当前使用的时间。探寻到一个状态节点,将不将其放入优先队列,从不从该节点开始广搜判断的依据为改状态所处位子是不是墙或D或E(题目要求不能穿过D或E)已经该状态有没有搜索过。判断一个状态有没有搜索过,主要由一个4维 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175方法:在每一步都要维护4个信息,当前坐标,当前方向(垂直还是水平),当前已经折了多少次和携带的目标数字。根据这几个信息,在一步深搜索探寻下一步的时候,选择下一步的标准是:没有访问过 && (是可以走的路 || (不是路而是一个和目标数字相等的数 && 该位置就是目标位置))。整个算法的过程是:1.获取输入后验证是否可达,标准为: a.两个位子的数字必须相同。 b.两个位子的数字必须不能有0。 c.目标位置的直接周边4个必须至少有一个0.如果三个条件不能都满足,直 阅读全文