BFS
文章平均质量分 79
lin375691011
呵呵
展开
-
SDUT1028 POJ3278 Catch That Cow
这题。。。 我想说是不是在家太舒服了以至于一个BFS都敲不出来了。。。 访问过的数要标记不能在访问了自己不知道啊!!! 老是RE想不到这个问题么!!! 非得看人家题解你才想起来啊!!! 人家说要不是别人告诉是BFS真的想不到这里,可是我知道是BFS都做不出来啊。。。sad 这是我看的题解链接:http://blog.csdn.net/lyy289065406/article/detai原创 2013-07-23 23:08:43 · 5018 阅读 · 0 评论 -
POJ 2706 Connect
题目大意: 题目中给出一种游戏,有黑白两种颜色的棋子,黑色为先手。给定棋盘大小,双方下的棋子的位置和顺序,问黑子下的最后一步棋是否为决定自己胜利的那一步棋(及下了这一步棋后黑棋赢,不下就不赢)。游戏规则如下: 规定黑棋为先手,白棋为后手。 放下棋子A后,若A的8个马步方位,至少存在1个同色的棋子,且当连接A与这些棋子时,其连线不切割已经有的线,则连接。 黑棋的目标是连出原创 2013-10-10 16:25:49 · 4362 阅读 · 0 评论 -
POJ 1027 The Same Game
题目大意: 在一个10x15的方阵里填满了RGB三种小球,要求: 1、找到最大的一片相同颜色区域,并删掉,(这片区域相同颜色球必须相邻,且相邻数大于1)。 2、删除完成后,其他小球自然下落填充。先每列向下填充,空的列由右边一列平移补全。 3、当区域内没有球或最大相邻区域的个数为一,游戏结束。 模拟加BFS,很简单,下面是代码: #include #include cha原创 2013-10-06 12:04:36 · 4655 阅读 · 0 评论 -
POJ 3414 Pots
这个题是个BFS加了一点难度的题。 需要保存前一节点的在队列中的位置,操作等…… 下面是代码: #include #include int a,b,c; bool vis[105][105]; struct node { int x,y,pr; char s[10]; } qu[15000],du,dc; char c1[10000][10]; int main() {原创 2013-08-21 10:37:43 · 3947 阅读 · 0 评论 -
POJ 3126 Prime Path
大致题意: 给定两个四位素数a b,要求把a变换到b 变换的过程要保证 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数 与 前一步得到的素数 只能有一个位不同,而且每步得到的素数都不能重复。 每一个a都可以找到一个b,所以都会有答案,题目中如果找不到输出impossible这句话可以无视了。 下面是代码: #include #includ原创 2013-08-20 16:01:48 · 3851 阅读 · 0 评论 -
POJ 2049 Finding Nemo
这个题可以用BFS解决。 有以下几个注意事项: 1、使用优先队列可以缩短程序运行时间。 2、要注意墙和门的相对位置(我就在这卡了一天。。sad)。 3、注意只有门和墙的位置范围是[ 1 , 199 ],Nemo的位置不一定。 4、注意没有墙和门的情况。 5、注意数组越界。 下面贴代码: #include #include #include #include using na原创 2013-08-02 20:26:21 · 5090 阅读 · 0 评论 -
POJ 2251 Dungeon Master
杭电“胜利大逃亡”英文版,三维BFS,水水的。 不过注意细节,还是要注意细节!!! 数组开大点,不要给他们省内存,开30*30*30的会RE; 下面是代码: #include #include #include using namespace std; struct node { int x,y,z,cut; bool operator > (const node &原创 2013-08-19 20:19:55 · 3823 阅读 · 0 评论 -
POJ 1724 ROADS
题目大意: Bob要从City1到Cityn(想知道原因就去认真读题~~)他想走最短的路到Cityn,但是走任何一条路都需要花钱。 他只有R元钱,问他能走的最短路径是多长? 解题思路: 基于优先队列的BFS,搜索寻找最短路径,当路径长度相同时输出花费最少的。 下面是代码: #include #include #include #include using原创 2014-04-16 20:37:56 · 4819 阅读 · 0 评论 -
POJ 3411 Paid Roads
题目大意: 给定n个点和m条边,每条边是点i到点j的单向边。当经过这条路前经过了点k,那么在经过这条路时付P的金钱,否则付R的金钱。 求点1到点n的最小花费是多少。 解题思路: 这个题可以用优先队列BFS。按照花费的高低排序。但是在BFS过程中不能当经过某一点时就判断他被访问过以后不再经过了。需要对每个点的访问的次数就行记录。超过这个次数就不再访问。其他的都很简单 。原创 2014-04-09 20:22:34 · 91683 阅读 · 2 评论