搜 索
文章平均质量分 75
Ac-try
这个作者很懒,什么都没留下…
展开
-
HDU 1253 -- 胜利大逃亡 bfs
题目大意:给出一个三维迷宫的布局情况,输入数据的第一行是一个正整数K,表明测试数据的数量.每组测试数据的第一行是四个正整数A,B,C和T(1对于每组测试数据,如果Ignatius能够在魔王回来前离开城堡,那么请输出他最少需要多少分钟,否则输出-1. 思路分析:还是一样,明显的bfs,刚开始学习,一开始用dfs实现了一下,明显超时,后用bfs实现了,在实现是要注意结接下来要走的问题是否越原创 2015-01-09 21:32:43 · 613 阅读 · 0 评论 -
Fibonacci (BestCoder Round #28 B)
题目大意:给出一个数n,判断这个数n可否表示成斐波那契数相乘的形式。思路分析:n的范围是0~1000,000,000,这个范围内有44个斐波那契数 ,直接搜索就好。AC代码:#include#includeint fb[47],fac[10],flag,cnt;void f(){ fb[0]=0; fb[1]=1; for(int i=2;i<47;i++原创 2015-02-04 00:25:56 · 386 阅读 · 0 评论 -
POJ 2227 -- The Wedding Juicer(bfs+优先队列)
题目大意:一个W*H的网格,每个单位格的高度不一样,往这个网格注水,问能储存多少水;思路分析:四周不能注水,和木桶原理一样,要以最低的高度作为能储水的高度,否则水就会溢出;将网格最外层的点开始加入队列,每次去高度最小的点作为“木桶”最低边,看其连接的点,如果高度大于自己加入队列,否则注水至自己的高度加入队列。代码实现:#include#include#includeusing n原创 2015-04-07 19:59:20 · 671 阅读 · 0 评论 -
UESTC 852 -- 方老师与迷宫 (bfs)
题目大意:方老师被困在了一个3维的迷宫中,给出迷宫的布局,原点,终点,问出去最短需要多久;代码实现:#include#include#includeusing namespace std;char mp[35][35][35];bool vis[35][35][35];int l,r,c,sz,sx,sy,dx[6]={1,-1,0,0,0,0},dy[6]={0,0,0,0,原创 2015-04-14 19:59:23 · 365 阅读 · 0 评论 -
UESTC 149 -- 解救小Q (bfs)
题目大意:.表示安全的位置#表示陷阱,Q表示小Q的位置L表示love8909所在位置,小写字母a-z表示分别表示不同的传送阵,数据保证传送阵两两配对。思路分析:注意传送带就是把两个点黏在一起,并把当前的传送带的位置标记为1。代码实现:#include#include#include#includeusing namespace std;int n,m,Qx,Q原创 2015-04-07 18:59:24 · 312 阅读 · 0 评论 -
poj 3287 -- Catch That Cow (bfs 广搜)
题目大意:给出两个数,N,K,N代表此人目前的位置,K代表他要到达的位置,即牛的位置,他站在一个点X上,可以向前或向后走一步,即X+1或X-1;或者他可以走到X*2的位置上,问这个人从X点到到K点最短所用的时间。思路分析:一旦看到题中让求最短等问题,立刻想到用广度优先搜索,即bfs。bfs通常用队列实现,把它和一棵树联系起来,bfs实现的方式就是,把树一层一层的存到队列中,直到找到要找的数据,原创 2015-01-09 21:08:11 · 450 阅读 · 0 评论 -
poj -- 3206 Borg Maze(bfs+mst)
题目大意:给出一个迷宫,迷宫里面有一些外星人,要求找到所有外星人,给出搜索源点S及外星人A,在S点和A点可以分叉走,问找到所有外星人的最短路径是多少。思路分析:把S点和所有A点建成一个完全图,而边的权值就是两个顶点的最短距离,这里用bfs求得,在这道题中,我先是把S点和所有的A点用一个二维数组存了下来,以方便bfs查找建图,还有一点要说明的事(就是我做题犹豫的事情啦),在建立任意两个A点的边的原创 2015-02-08 19:30:12 · 326 阅读 · 0 评论 -
HDU 1010 -- Tempter of the Bone(dfs+奇偶剪枝)
题目大意:给出三个数,n,m,t,前两个数代表迷宫的大小,第三个数代表从迷宫入口到出口的时间,要求恰好在这个时间到达迷宫出口。思路分析:因为不是求最短到达迷宫出口的时间,而是要求在固定的时间到达迷宫出口,也就是到达迷宫出口的路径不一定是最短的,所以不能用bfs,而是改用dfs,但是要注意剪枝,我就因为没有进行剪枝而超时了一次,这里使用的是奇偶剪枝,什么意思呢?奇偶剪枝:原创 2015-01-17 23:18:51 · 376 阅读 · 0 评论 -
HDU 1312 -- Red and Black(dfs)
题目大意:一个房间,有红色的格子,黑色的格子,黑色的格子’.‘可以走,红色的格子不可以走,问一个人站在一个点’@‘最多能走多少个格子。思路分析:从这个人开始,用dfs,搜索以这个点为根节点的整棵树,找到一个子节点,用来计数的cnt就加1;其实可以设立一个visit数组,初始化为0,用来判断以这个节点为根节点的那些节点被访问过,被访问过的结点就说明从这个根节点能到达这个点,该点的visit设为1原创 2015-01-09 23:24:02 · 393 阅读 · 0 评论 -
HDU 1241 -- Oil Deposits (dfs)
题目大意:有一块m*n油田,’@‘认为是有油,’*‘认为没油,如果有多块油田连着,则被统一认为为一块油田,一块油田可以有上,下,左,右,左上,右上,左下,右下8个方位,问一共有多少块油田。思路分析:从(0,0)点开始找,遇到一个油田’@‘,调用dfs函数,搜索以这个点为根节点的一整棵树,并把这个过程中的被找到的结点对应的油田的位置设为’*‘,即没油,保证这个点只被访问一次。一直找到(m-1,n原创 2015-01-10 00:04:01 · 428 阅读 · 0 评论 -
HDU 1242 -- Rescue (bfs,dfs)
题目大意:Angel被关到监狱里,他的朋友们 'r '想要营救他,及找到Angel的位置 'a' 。监狱有墙 ‘#’ ,警卫‘x’,遇到警卫就杀死,多用一个单位时间,在监狱里可以向上走,向右走,向左走,向右走,问朋友到达Angel最短的时间。思路分析:这道题的数据比较小,用bfs,dfs都过了。要注意的是Angel的朋友不止一个,所以从Angel的位置开始找,找到离他最近的朋友的位置。bf原创 2015-01-09 22:59:42 · 344 阅读 · 0 评论 -
Fox And Two Dots (Codeforces Round #290 (Div. 2)B)
题目大意:给出一个矩阵,由大写字母覆盖,判断同一个大写字母能不能走成一个圈。思路分析:注意题意是走成一个圈,而不是矩形,一开始在这耽误了好长时间,而要求走成一个圈,即从这个点开始,沿着上下左右方向走能否最终走回这个点,用dfs,限制条件就是这条路径的颜色必须相同。而最小的圈其实就是走成一个2*2的矩形,那么最少的步数也就是4,那么判断是否回到原点,也就是当前点的坐标等于原点坐标的同时,所走的步原创 2015-02-04 00:48:18 · 354 阅读 · 0 评论