数据结构-图
文章平均质量分 74
miss_minor
坚持,请你坚持
展开
-
572 - Oil Deposits
题目:572 - Oil Deposits题目大意:就是求大块油田的个数。大块的油田指的是(水平,垂直,或对角相邻的油田组成的)。#include#includeconst int N = 105;int m, n;int s[N][N], visit[N][N];void dfs(int x, int y) { if(!s[x][y] || visit[x][y原创 2014-02-11 13:02:15 · 595 阅读 · 0 评论 -
196 - Spreadsheet(dfs)
题目:196 - Spreadsheet题目大意:就是电子表格,有的有数字,有的有公式, 要求最后输出的都是数字,公式用相等的数字代替。解题思路:首先要处理后面的公式,一点都不好处理,写了好久,然后就是计算公式,公式里面可能还会有公式,所以用dfs.注意判断的时候要两次判断,不能判断不行了就直接跳过,因为回来后就可以了。这题里面公式可能会有=10 + A1+ B1的,所原创 2014-02-20 21:27:30 · 651 阅读 · 0 评论 -
10129 - Play on Words(欧拉道路<有向图>)
题目:10129 - Play on Words题目大意:词语接龙。解题思路:刚开始没想到欧拉道路,直接找,结果超时了。这题满足要求的话就是把每个单词看做一条路,每条路连在一起走一遍就符合要求, 欧拉回路也是符合要求的。满足欧拉道路:1,至多只有两个点的出度入度相差1。 2, 这个有向图的无向图连通。(刚开始一直在想,如果有两条一样的路,这样怎么处理原创 2014-02-19 17:57:12 · 651 阅读 · 0 评论 -
10054 - The Necklace(欧拉回路+回路打印)
题目:10054 - The Necklace题目大意:给出N给珠子,每个珠子都有两种颜色,各半,看能不能找出每种组合使珠子连成一串,颜色相同的珠子才能相邻。解题思路:欧拉回路+ 回路打印。刚开始的时候我直接以珠子的个数来考虑是否有欧拉回路,这样的话1000*1000次判断导致超时了。这里可以判断颜色,颜色都访问过了,就说明这串珠子是连通的。然后要输出的时候就在按照珠子原创 2014-02-19 20:36:31 · 702 阅读 · 0 评论 -
657 - The die is cast(dfs)
题目:657 - The die is cast题目大意:就是看图中的骰子点数。解题思路:两次深度遍历,第一次先找骰子,第二次在找点数,本来是用一个数组来记录这个地方是否访问过,但是后面发现这样对于两次的dfs会出现问题,所以就将访问过的X改成*,访问过的*改成点,这样就可以达到二次遍历。先找不是 .(点) 的字符,然后在这里面找X的块数,这个就是点数。再次明确原创 2014-02-18 19:42:39 · 651 阅读 · 0 评论 -
10557 - XYZZY(dfs + bfs)
题目:10557 - XYZZY题目大意:就是一款游戏,冒险本来的能量是100,每进一间屋子就可以把屋子里的能量占为己有,但是屋子能量有正有负,然后给起点终点,看能否成功的到达终点。并且一间屋子可以重复进去多次。解题思路:刚开始想用dfs, 但是题目里面会有环,会出现死循环,一直没想到思路。后来看了别人的代码。才发现可以巧妙的用dfs和bfs。bfs()是用来只寻找是否有到达终原创 2014-02-15 19:08:27 · 789 阅读 · 0 评论 -
10047 - The Monocycle(BFS +状态判断)
题目:10047 - The Monocycle题目大意:还是迷宫问题,只是这次有要求方向和轮子着地的颜色。解题思路:BFS ,但是需要判断状态, 并且一个格子不在是走过一次就不可以走了,而是要判断走过这个格子的轮子的方向啊,颜色啊,所以那个是否走过格子的数组是四元数组,刚开始没有想到这个,不知道到了终点后颜色不符合要求该怎么办,后面看了别人的代码,才发现可以都遍历一遍,看原创 2014-02-15 13:45:34 · 591 阅读 · 0 评论 -
705 - Slash Maze
题目:705 - Slash Maze题目大意:给一个斜线迷宫,求这个迷宫是否有环,最长环的长度。解题思路:将斜线放大三倍,用数组来储存。这样的话就不需要八个方向遍历,只需要上下左右四个方向就可以了。然后如果有遍历到数组边界的就可以认定不是环了。#include#includeconst int N = 250;char str[N];int visi原创 2014-02-13 17:38:00 · 753 阅读 · 1 评论 -
784 - Maze Exploration(bfs)
题目:784 - Maze Exploration题目大意:类似走迷宫, 八个方向走,空格的表示可以走,‘X’不可以走,‘*’是起点。解题思路:BFS;#include#include#includeusing namespace std;const int N = 35;const int M = 85;int t, k;char maze[原创 2014-02-12 20:38:26 · 608 阅读 · 0 评论 -
10004 - Bicoloring(BFS)
题目:10004 - Bicoloring题目大意:将给定的图的节点染色,颜色只有两种,并且要求相邻的节点颜色不同,且无向图里面没有自环且是强连通的;解题思路:因为是强连通的,所以用BFS可以访问到每个节点,并且相邻节点还可以染成不同的颜色。当染色冲突时,就说明这个图不可以二染色,如果顺利的都染色了,没有冲突,这个图就可以二染色。#include#include#i原创 2014-02-12 18:50:14 · 671 阅读 · 0 评论 -
532 - Dungeon Master(bfs)
题目:532 - Dungeon Master题目大意:三维的迷宫。解题思路:BFS。和前面一题二维的一样,就是改成三维的。#include#include#includeusing namespace std;const int N = 35;int l, r, c;struct dungeon{ char s[N][N];}d[N]原创 2014-02-12 15:52:13 · 541 阅读 · 0 评论 -
439 - Knight Moves
题目:439 - Knight Moves题目大意:就是给起点,终点,看最少走几步能从起点到终点。走的方式是采用国际象棋,走日字型。解题思路:BFS,广度优先遍历。#include#include#includeusing namespace std;struct bit { int x, y;};const int N = 8;int d原创 2014-02-11 16:44:44 · 587 阅读 · 0 评论 -
10596 - Morning Walk(欧拉回路 + dfs)
题目:10596 - Morning Walk题目大意:给R条路,看是否能每条路走一遍, 从起点回答终点。解题思路:每条路只能走一遍,且要求形成回路,这就是欧拉回路。对于无向图来说(因为是道路,不是有向的)。每个点的度都为偶数,且这个图是连通的, 这个图就一定是欧拉回路。#include#includeconst int N = 205;int G[N]原创 2014-02-11 19:10:19 · 617 阅读 · 0 评论 -
10305 - Ordering Tasks(拓扑序列)
题目:10305 - Ordering Tasks题目大意:给出几个任务的先后顺序,推出可能的排序。解题思路:1,找出没有前驱,且没有访问过的点,放在拓扑序列的头部,,,2,删掉他所有想关连的边,并标记访问过。再次找出没有前驱的点,重复前面两个步骤,直到所有的点都访问过位置,输出拓扑序列。#include#includeconst int N = 105;int原创 2014-02-11 21:30:08 · 616 阅读 · 0 评论