ACM BFS&DFS
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
POJ 3278 Catch That Cow 【BFS】
题目链接:http://poj.org/problem?id=3278 题意:假设一个人在位置x,那么他下一分钟能到达的位置是x-1,x+1,2*x,现给出你n,k,让你求从n到k最少所花费的时间 解析:直接bfs#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmat原创 2017-02-17 09:43:53 · 281 阅读 · 0 评论 -
POJ 3984 迷宫问题 【DFS】
题目链接:http://poj.org/problem?id=3984 题意:中文题…… 解析:图不大,dfs直接做,到终点时更新下路径就好#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <queue>using namespace s原创 2017-02-17 11:25:45 · 591 阅读 · 0 评论 -
hdu1495 非常可乐【bfs】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题意:中文题 解析:反正就是3个杯子倒来倒去,那么每次都试一下,直接bfs就好,写的过程中耐心一些,就可以了#include <bits/stdc++.h>using namespace std;struct node{ int a,b,c; int step;原创 2017-08-29 14:11:08 · 385 阅读 · 0 评论 -
poj3414 Pots【dfs】
题目链接:http://poj.org/problem?id=3414 题意:有两个容器,容量分别为A,B,对于容量有3种操作,1、装满,2、倒掉,3、从一个倒到另一个,问你能否进过一系列操作把其中一个容器装上C的水,如果能输出,最小操作数,以及具体操作步骤,如果不能就输出impossible 解析:这题和非常可乐这题很像,就是被子倒来倒去的,但是这个需要记录路径,一开始想用bfs,感觉不好记录原创 2017-08-29 17:20:01 · 320 阅读 · 0 评论 -
poj1321 棋盘问题【dfs】
题目链接:http://poj.org/problem?id=1321 题意:中文题,题意讲的不算清楚,算是半猜出来的题意把,就是把k个棋子放在棋盘上,棋子只能放在#格子上,同行同列不能有两个棋子,问你合法的方案数 解析:dfs,从第0行开始往下找,逐行向下搜索,这样就避免了同行出现两个的情况,只用考虑同列的情况即可,写起来也比较好写#include <cstdio>#include <alg原创 2017-08-30 13:31:04 · 325 阅读 · 0 评论 -
poj3126 Prime Path【bfs】
题目链接:http://poj.org/problem?id=3126 题意:给你两个四位数的素数,让你把第一个素数通过一定的操作步数变成第二个,每步操作只能改变某一位的值,改变后的数也必须是素数,且不能有前导零,如果达到目的,则输出最少的步数,如果不能输出Impossible 解析:bfs好写一点,每次拿出来队头,然后枚举第几位,然后枚举这位改变为什么,判断是否合法,加入队列,一直跑到结果或队原创 2017-08-30 14:10:49 · 331 阅读 · 0 评论 -
UVA11624 Fire!【BFS+细心】
题目链接:https://vjudge.net/problem/UVA-11624 题意:有一片区域,J代表人,F代表火,#代表墙,.代表空地,每秒钟火会像四周空地扩散,人每秒也只能向四周移动一格,现问你人能在不被火烧到的情况下逃出这片区域吗,如果能输出最短的时间,如果不能输出IMPOSSIBLE 解析:其实很容易想到bfs,但是题目坑点略多,调bug+看题花了很多时间,最容易想到的思路应该就是原创 2017-08-31 12:54:06 · 301 阅读 · 0 评论 -
hdu2181 哈密顿绕行世界问题【dfs】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2181 题意:给你一个无向图,这个图有20个结点,且每个结点和三个结点相连,现在问你一某一个结点开始,经过所有结点并回到起始点的所有路径,按字典序输出 解析:dfs就好了,从起始点开始dfs,由于每次都是从最小的开始选,所以第一次回到起点的时候肯定是最小字典序的,回溯只是慢慢改变这个字典序,所以这样输原创 2017-09-01 12:13:14 · 424 阅读 · 1 评论 -
hdu2102 A计划【BFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2102 题意:中文题 解析:很简单的bfs,但是题目有个很奇葩的设定,那个时光机,你踩上去一定会传到另一层,那么如果你的另一边也是时光机的话,那你就拉闸了,这种情况确实很无语,注意下这个坑点,其他都跟普通的走迷宫没区别#include <bits/stdc++.h>using namespace s原创 2017-09-01 21:36:27 · 285 阅读 · 0 评论 -
hdu3085 Nightmare Ⅱ【双向BFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3085 题意:有一个n*m的地图,有两只狗要见面,M代表第一只狗,G代表第二只狗,Z代表鬼,X代表墙,.表示可以走的地方,每秒钟,鬼先走,鬼每秒钟可以走两步,M狗每秒能走3步,G狗每秒只能走一步,只要两只狗能够互相走到他们之前走过的位置就算见面……现在问你在他们不走到鬼的格子上的情况下而完成目标的最小时原创 2017-09-02 16:45:08 · 319 阅读 · 0 评论 -
hdu6060 RXD and dividing
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6060 题意:给你一棵有n个结点的树,让你把他的2~k个节点分成k份,然后求1号顶点到每份里各个顶点的最大权值和,比如说样例,就是分成了{2},{3},{4},{5},到每个顶点的距离即是到这个顶点在原图上到顶点的距离 解析:其实画多几棵树会发现一个问题,就是有些变权是会被多次重复计算的,比如样例,(原创 2017-08-27 14:40:03 · 298 阅读 · 0 评论 -
hdu6044 Limited Permutation【读入优化+dfs】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6044 题意:有长度为n的序列,分别表示l[i]和r[i],然后让你构造一个a序列,a[i]满足在[l[i],r[i]]区间里面,a[i]为最小值,满足这样条件的序列有多少种 解析:首先根据题面的限定,肯定存在一个区间i是[1,n],对于这个区间,可以说第i个值已经确定了,因为这个区间是当前的整个区间原创 2017-08-27 10:32:53 · 371 阅读 · 0 评论 -
hdu6113 度度熊的01世界
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6113 题意:中文题 解析:其实题目对于两种条件,给的限制条件很多,只要仔细读题,还是很好写的,总的来说就是要么只有一个1的联通块给0包围,要么就是只有一个零的联通块给1包围,所以你只要在外面一圈0零,然后dfs,数一数1和0的联通块的数量即可#include <bits/stdc++.h>usin原创 2017-08-20 13:32:38 · 254 阅读 · 0 评论 -
POJ 1426 Find The Multiple 【BFS】
题目链接:http://poj.org/problem?id=1426 题意:给你一个n,让你找一个可以整除n的数,这个数只有0和1构成 解析:由于这个数很特殊,所以可以构造出来,用bfs从1开始,每步只能x*10或者x*10+1#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#inclu原创 2017-02-17 10:35:16 · 272 阅读 · 0 评论 -
hdu 1241 Oil Deposits 【DFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 题意:油田问题,很经典的搜索题 解析:每遇到@就对他进行dfs,把和他相连的@全都打上标记,顺便ans++#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>原创 2017-02-17 11:46:30 · 304 阅读 · 0 评论 -
hdu 2612 Find a way【BFS】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题意:y和m要在kfc见面,问你能否选择一家kfc使得y和m到那里的距离最短 解析:两个人都跑一遍bfs,然后枚举每家kfc,找出最优的即可#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>原创 2017-02-17 14:20:52 · 289 阅读 · 0 评论 -
POJ2251 Dungeon Master 【BFS】
题目链接:http://poj.org/problem?id=2251 题意:给你一个三维迷宫,S是起点,E是终点,#不可走 解析:直接开个三维数组,BFS就好#include <algorithm>#include <cstring>#include <cstdio>#include <queue>using namespace std;const int inf = 0x7ffff原创 2017-02-16 10:39:43 · 353 阅读 · 0 评论 -
Gym - 101196H Vin Diagrams
题目链接:https://vjudge.net/problem/Gym-101196H 题意:给你两个凸边形的圈A,B,让你数出A包含了几个与B不相交的点,B包含了几个与A不相交的点,A和B相交了多少给点 解析:这种题就是xjb染色,反正写的要死了,我的做法是,在整个图的外面加一圈,然后对A的边染色,染色方式是如果能一直走就一直走,染完后,把圈A外面的全部染成一种颜色,然后剩下里面的也染成另一种原创 2017-03-17 21:25:41 · 806 阅读 · 0 评论 -
poj2386 Lake Counting【DFS】
题目链接:http://poj.org/problem?id=2386 题意:和油田问题是一样的 解析:不解释,直接起手就是一个dfs#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>using namespace std;const int maxn = 105;int dx[] =原创 2017-02-26 14:34:33 · 315 阅读 · 0 评论 -
CodeForces 780C Andryusha and Colored Balloons【DFS】
题目链接:http://codeforces.com/problemset/problem/780/C 题意:给你一棵树,让你用最少的颜色给这棵树染色,相邻节点的颜色不同 解析:DFS染色#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <iostream>#include <原创 2017-03-13 20:58:24 · 665 阅读 · 0 评论 -
CodeForces 761E Dasha and Puzzle【dfs】
题目链接:http://codeforces.com/contest/761/problem/E 题意:给你一颗树,问你能否把这颗树放在二维坐标轴上,且每条边都与x或y轴平行,且每条边不可以重合,点也不能重合,如果可以请输出每个点的坐标 解析:其实这是一道很容易就想到的搜索题,奈何我一直姿势不对,WA成傻逼,首先如果一个点度数超过4那肯定是不行的,然后你随便选一个点,去做dfs,按照一个方向开始原创 2017-04-03 15:45:06 · 609 阅读 · 0 评论 -
Gym - 101196D Lost in Translation【BFS+优先队列】
题目链接:https://vjudge.net/problem/Gym-101196D 题意:给你n本书,给你m种翻译的路径和每条翻译路径的花费,这n本书的初始语言是English,让你把这n本书变为目标语言,在每本书的翻译路径是最短的情况下,问你最小花费为多少 解析:根据点和路径来建图,以English来进行BFS,每次要求找到路径最短且花费最小的,我采用的是优先队列来维护,每次从队列里取出队原创 2017-03-17 13:24:39 · 726 阅读 · 0 评论 -
Gym - 101490J Programming Tutors
题目链接:https://vjudge.net/problem/Gym-101490J 题意:有n个学生,每个学生有一个坐标代表位置,有n个老师,每个老师有一个坐标代表位置,他们之间需要互相配对,每对之间的价值为他们之间的曼哈顿距离,现在要你找一种配对方式使得他们之间的最大价值最小,输出这个最小值 解析:由于是配对,所以应该很容易想到二分图匹配,匈牙利原理是每次都找增广路,这个也是一样的,从第一原创 2017-09-12 22:56:10 · 560 阅读 · 0 评论