摘要: YYR在洞穴中遭遇毒气,必须赶紧逃离此是非之地,怎奈毒气亦会扩散,且向四周绵延,即扩散的毒气继续扩散。给出YYR当前坐标和毒气坐标以及洞口坐标,判断YYR是否能够逃离此是非之地,人命关天啊!  用两个队列q和gas保存bfs当前层次YYR能到达的地方以及能够继续扩散的毒气坐标。这是个比较棘手的问题。也就是说bfs每深入一层,这一层的节点都应该在毒气状态相同的情况下处理。反之毒气也是每一层如此。程序中有两个while(cur_size--)就是处理这个问题的。 阅读全文
posted @ 2010-12-24 11:06 c++fans 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 类似于迷宫问题,只是多了一个可以飞行的条件,并且无论飞行多远距离都只算一个单位时间,这里要注意判重数组visit的使用,第三维代表到当前点剩余可飞行的距离。因为如果之前访问过当前点并且剩余可飞行距离相同,则这种状态不用进入队列。#include #include using namespace std;const int N = 101;struct pos{ int row; int ... 阅读全文
posted @ 2010-12-24 10:42 c++fans 阅读(753) 评论(0) 推荐(0) 编辑
摘要: 给出一个矩阵表示经过没一点时耗费的油量,且在当前的点可以向上下左右四个方向移动,问从起点(start_r,start_c)到终点(end_r,end_c)所耗费的最小油量。鉴于个人水平,第一想到的就是Dijkstra算法求最短路径。并且没有使用二叉堆维护当前最小权值,效率较低。#includeiostream#includevector#includestdio.h#includecstringusing namespace std;struct Edge{ int v; int cost; Edge(int vv,int cc): v(vv),cost(cc) {}};con 阅读全文
posted @ 2010-12-24 10:20 c++fans 阅读(1030) 评论(0) 推荐(1) 编辑