#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#define INPUT
/**
Problem : poj3009
看别人的报告过得,代码基本上相同,因为实在不会了
Begin Time: 11th/3/2012 7:28 p.m.
End Time: 11th/3/2012 11:10 p.m.
解题报告:http://blog.youkuaiyun.com/harder2005/article/details/2816881
测试数据见Discuss
知识点:
DFS,回溯,智商!!
教训:
这道题十分经典,简直是“不动脑子就WA”的一道题的典范
解题报告中的代码十分简洁精练,十分推荐!!
1.关于搜索的选择
虽然是最短,但是题中说了超过10次就失败,所以暗示了使用DFS
这点跟那个Nightmare的思路是一样的
2.关于智商
这道题中有一个Block,解题报告里面把Block看做了是墙,但是如果判断
没有出maze,那么maze[i][j] == 1.回溯的时候maze[i][j] == 0
3.关于输入输出
这道题解题报告十分经典的一个原因,就是mazi[i][j] = 1(能够通过)
maze[i][j] = 0不能通过,这跟WY学长提到的memset不能设1
(否则内存变成1111111111111111)思想是一样的
4.关于搜索
这道题说冰壶丢出去就要一直碰到Block才停下,所以有一个
while(maze[i][j])
tmp.x++....
在+完之后tmp.x--,然后判断tmp.x + 1是否在范围内,来判断是否扔出了范围
这点很赞
5.关于回溯
这题作者把_min设置为了11,最多也就是11层,判断每个节点p > _min的时候就回溯!