摘要: 题意,给你一张地图,图上空格表示连接的线段可以穿过,X表示方块而且线段不能穿过。下面给出一些待连接的方块坐标,求连线的最短线段数。我的思路是BFS,声明一个结构体保存当前的点坐标、方向和已走线段数,遇到拐弯(方向变化)就更新已走过的线段数。最初用优先队列写的,Wrong Answer到郁闷,最后单步调试发现当线段数相同时,会产生哪个点先下一步的优先级问题。最后还是用队列解决问题。这道题难点应该没有,就是输入地图时要注意下,每行有回车,输完一行记得getchar()一下。然后就是,输入给出的点坐标,第一个是纵坐标,第二个是横坐标,坐我后面的同学因为这个WA了半天,哈哈。 1 #include&l 阅读全文
posted @ 2012-02-11 21:11 dgsrz 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 这道题是简单的迷宫问题。刚进校队,数据结构很多地方不明白,这是我第一次尝试写BFS,顺便试着用栈保存查找路径。效率不高(保存路径比我方法好的多得是),不过应付这道题完全够了。贴个代码,记录一下ACM路上的点滴。大牛见笑了~ 1 #include<iostream> 2 #include<queue> 3 #include<stack> 4 using namespace std; 5 6 typedef struct { int x; int y; int step; } Pos; 7 int maps[5][5], vis[5][5] = {0}, mov 阅读全文
posted @ 2012-02-11 20:54 dgsrz 阅读(311) 评论(0) 推荐(0) 编辑