dfs or bfs
文章平均质量分 52
HelloWorld10086
追随大神的脚步
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 2612 Find a way(bfs)
解析: 求2个点到KFC的距离之和,使其最小,可用2次BFS,分别求出2个点到各个KFC的最短距离,然后找出和最小的即可。AC代码#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <cstdlib>using namespace std;typedef long long原创 2015-05-18 21:02:05 · 555 阅读 · 0 评论 -
uva10318 Security Panel (dfs+剪枝)
题意: 有一个r*c的矩阵上选择一些格子进行“点亮”操作,使得最终所有格子都是“亮”的状态。初始时矩阵上面的所有格子是暗的,从左上到右下,编号从1开始。 现在我们给出一个3*3的矩阵,作为按钮规则: 例如: **. .*. *.. 也就是你按任意按钮,都把这个按钮当作是这个3*3矩阵的中心,按照这个规则,也就是按一个按钮,则这个按钮周围的 * 的位置,按照该规原创 2015-04-22 17:21:57 · 754 阅读 · 0 评论 -
POJ 1321 棋盘问题(dfs)
解析: 简单的dfs,逐行深搜,用一个vis数组来标记当前列是否已经放置棋子,如果没有放置,且当前的格子为 ‘#’ 就放置棋子并跳到下一行,如果没有可放置的棋子,就直接跳到下一行。AC代码#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <cstdlib>using name原创 2015-04-07 21:40:02 · 547 阅读 · 0 评论 -
UVA 1533 Moving Pegs(bfs+hash)
题意: 一个跳棋,给定一个空位。求最少步数且字典序最小使得跳到最后棋盘只剩一个旗子,且在初始的空位上。思路: BFS + hash判重,这题的思路还是比较好想的,但是我看网络上面的代码,都是打表+bfs,我直接把状态转换为2维数组,对6个方向进行bfs。AC代码#include <cstdio>#include <cstring>#include <algorithm>#inclu原创 2015-04-23 16:47:26 · 627 阅读 · 0 评论 -
uva 818 Cutting Chains(dfs+状态压缩)
题意 给出一些环,以及哪些环之间是相连的。 问所最少打开即可环,可以将这些环连成一串(注意不是环)解析 因为n最大才15,可以用一个二进制数表示各个环是否被打开。 然后判断一下是否还有位置出度数大于2,以及是否有环的存在。 在以上两种情况都满足的情况下还要判断:打开环的次数+1 >= 链数AC代码#include <cstdio>#include <cstring>原创 2015-05-13 07:43:01 · 649 阅读 · 0 评论 -
UVa 812 - Trade on Verweggistan (贪心+dfs)
题意:题目给出一个w,表示几组货物,然后给你n以及n个数表示价格,利润=10-价格 每次只能取前i个,求最多的利润对应几个货物,如果答案超过10个,则升序输出前10个。解析:首先是简单的计算最大的利润,每行最大利润到那个位置,这样只要取每行的最大数的位置就好了,然后深搜出所有的可能。AC代码#include <cstdio>#include <cstring>#include <algorit原创 2015-05-06 09:10:39 · 620 阅读 · 0 评论 -
UVA 656 Optimal Programs(bfs)
题意给出五个操作,和n个栈,问能否用同一种操作使得栈中最后的数字,等于目标所要的数字,且栈中任意时刻,每个数字不能超过30000。 输出最小的操作数,如果操作数相同,输出字典序最小的。解析:可以先bfs第一个数字和目标第一个数字,然后利用这些操作,操作后面的数字,判断结果是否和目标数字一一对应。AC代码#include <cstdio>#include <cstring>#include <s原创 2015-05-06 09:23:25 · 556 阅读 · 0 评论 -
UVA 669 Defragment(dfs)
题意: 有连续n块内存,然后有k个文件,每个文件可以分为ki块放到内存里,其他内存块为空,现在给出每个文件的ki个碎片在内存中的放在第几块(碎片有序,即每个碎片从1开始递增)。 然后开始进行内存块内容的移动,操作a b表示把内存a中的东西放到内存b中,前提是b为空,要求最少的操作使文件能够按顺序从最小的内存块开始存储,输出顺序操作过程。解析: 直接dfs,用place[i]来标记当前原创 2015-05-06 08:41:52 · 691 阅读 · 0 评论 -
UVA 225 - Golygons(dfs回溯)
题意: 一个探险队要去参观城市,走n次,每次走1,2,3,4,5,…n步,参观停留的城市,每次方向转90度。路途中有一些障碍物是不能走的,之前拐弯过的点也是不能走的。求所有走法,按字典序输出。解析: 直接回溯深搜就可以了。AC代码#include <cstdio>#include <cstring>#include <string>#include <algorithm>usin原创 2015-05-06 08:50:13 · 568 阅读 · 0 评论 -
POJ 3126 Prime Path(bfs)
题意: 给定两个4位的质数a和b,从a开始每次只能改变a的一个数字,并且改完后的a还是质数,求a最少经过几次变换能得到b….. 比如1033变到8179最少需要6次,过程如下 1033 1733 3733 3739 3779 8779 8179解析: 先打印素数表,然后进行bfs。AC代码#include <cstdio>#includ原创 2015-05-20 20:08:58 · 939 阅读 · 0 评论 -
poj 3087 Shuffle'm Up(bfs)
题意: 给定长度都为C两个字符串,S1,S2,和一个要求的结果字符串S12。先把 S2 的最下面一张牌放在最下面,然后S1,S2交错的叠放,得到新的S12,再把S12最下面的C个字符赋值给S1,把剩下的赋值给S2,再次重复上面的过程。最后求出要得到目标字符串S,问最少需要几步。注意: 题目所给出的输入是从低向上排列的。解析: 简单的bfs问题,直接模拟就好了。AC代码:#inclu原创 2015-05-20 20:14:58 · 1691 阅读 · 0 评论 -
POJ 3279 Fliptile(状态压缩+暴力)
题意: 给出最高15*15的0 1矩阵,每次可以翻转一个点,其相邻的4个点都被翻转,问最少翻转几次可以全部变为0。解析: 枚举第一行的翻转所有翻转情况然后逐行向下更新,如果上一行是1的话,那么下面一行肯定要翻转,因为只有下面一行能影响上面一行。 最后判断一下,最后一行是不是都是0,如果都是,则维护最小的翻转次数。AC代码:#include <cstdio>#include <cs原创 2015-05-20 20:20:01 · 3354 阅读 · 0 评论 -
POJ 1426 Find The Multiple(bfs+打表)
题意: 给一个数n,让你找出一个只有1,0,组成的十进制数,要求是找到的数可以被n整除。解析: BFS+打表,队列用数组来模拟,如果直接用STL会超时。AC代码#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <cstdlib>using namespace std;原创 2015-05-18 20:02:25 · 525 阅读 · 0 评论 -
UVa 269 Counting Patterns(dfs+构造)
题意: 求出所有的n个绝对值不大于k的数的组成排列,排列的和为0。 且对于一个排列,全部正负号翻转、排列顺序翻转、循环左移、循环右移所构成的新排列视为同一个排列,并要求按照字典序打印所有的排列。解析: 参考了学长的解题报告,其思路是按照字典序构造出和为0的排列,且该排列的字典序是当前排列所有字典序最大的。然后记录下来,最后打印。AC代码#include <cstdio>#incl原创 2015-04-22 20:05:14 · 638 阅读 · 0 评论 -
HDU 1495 非常可乐(隐式图搜索)
非常可乐Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4945 Accepted Submission(s): 2002Problem Description大家一定觉的运动以后喝可乐是一件很惬意的事原创 2014-08-29 18:58:16 · 937 阅读 · 0 评论 -
hdu 4041 Eliminate Witches!(栈模拟)
题意: 给你一个字符串,转化为一棵树,输出先序遍历节点的顺序;解析: 整个串由节点名字,’(‘、’)’、’,’ 组成,遇到一个括号时,当前左括号是当前括号内节点的父节点,括号内用’,’隔开的是兄弟节点,整体就是一颗树; 用栈模拟整个串来遍历该树,用vector来保存遍历节点的顺序。 模拟的过程如下: 1)当遇到字符时,建立一条路径来连接当前的栈顶和当前的编号,并把原创 2015-05-18 19:00:47 · 589 阅读 · 0 评论 -
UVA 1374 Power Calculus(迭代深搜)
题意: 给出x和正整数n,问最少需要几次乘或者除法,可以得到 n=xmn = x^m思路: 其实是关于指数的操作,即从1到m最少的步数。我们可以先确定最少步数mm,然后进行迭代,迭代的过程也就是判断通过相加减所得到的数可以在m次操作中等于n,如果符合,m即为最小步数。 如果不符合,m++m++,进行下一次迭代。迭代过程中要注意剪枝,即剩余的次数如果每次都是取最大值相加还是比 nn 小原创 2015-07-18 19:26:30 · 1658 阅读 · 0 评论 -
hdu 5335 Walk Out(dfs+bfs)
解析: 求从坐标(1,1)(1,1)到(n,n)(n,n)的路径中,所能得到的二进制数最小是什么。解析: 要分情况讨论。 1. 如果(1,1)(1,1)是11的情况,那么这种情况用bfs求出字典序最小的二进制数。 2. 如果(1,1)(1,1)是00那么就沿着0走,搜索出所有最远可达点,然后把这些点Push进队列中,并进行bfs。注意: dfs可能会爆栈,所以要用汇编扩栈原创 2015-07-30 20:40:06 · 638 阅读 · 0 评论 -
hdu 5336 XYZ and Drops(模拟十滴水游戏bfs)
题意: 模拟十滴水的游戏,可以百度玩一下这个游戏。 在棋盘上有n个水滴,刚开始时在(x,y)(x, y)有一个爆掉的水滴 向周围4个位置溅射,每个水爆掉之后 就没了,分成4个质量为1的向四面的水滴。 然后其他有n个点,有一些已经存在的水滴,水滴到4以上会爆掉。 当水滴越界就会消失。 问最后存在水滴质量 以及水滴爆掉的时间解析: 这题不难但是还是调试了原创 2015-07-31 15:59:40 · 718 阅读 · 0 评论 -
hdu 5423 Rikka with Tree(dfs)
解析: 显然一棵树是独特的当且仅当任意处于每一个深度的点数是”1 1 1 1 … 1 1 x”。所以直接DFS一下求出每一个点到根的距离然后判断一下就好了 。mymy codecode#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#define pb push_backusing nam原创 2015-08-31 21:12:39 · 521 阅读 · 0 评论 -
hdu 5424 Rikka with Graph II(n个点n条边的汉弥尔顿路径判定)
解析:(转自这篇博客): 给一个n条边,n个顶点的图,判定是否存在哈密顿路。 如果存在哈密顿路,此时路径中含有n-1条边,剩下的那一条要么是自环(这里不予考虑,因为哈密顿路必然不经过),要么连接任意两个点。不考虑自环,此时图中的点度数为1的个数必然不超过2个,有如下三种情况: 1、剩下的那条边连接起点和终点,此时所有点度数都是2,可以从任意一个顶点开始进行DFS,看能否找到哈密顿原创 2015-08-31 19:39:15 · 913 阅读 · 0 评论 -
hdu 5348 MZL's endless loop(欧拉路径+欧拉环)
题意: 在图上有n个点(1≤n≤1051≤n≤10^5),m条边(1≤m≤3∗1051≤m≤3∗10^5)现在给你这m条边的关系,但是没有给出方向。 现在请你构造出一个图,这个图满足每个点的|出度−入度|≤1|出度-入度|≤1 如果当前的方向不变就是0,方向改变就是1。解析: 考虑一个环的情况,可以通过单向边顺次连接做到入度和出度相等。 定理<1>: 一个图,肯定存在偶数原创 2015-08-05 11:27:25 · 889 阅读 · 0 评论 -
hdu 4403 A very hard Aoshu problem(dfs)
题意: 给定一串数字,在这些数字中插入一些‘+’或者’=’ 使得两边相等思路: 比较简单的dfs问题 首先确定下等于号的位置,然后两边进行dfs。mymy codecode#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const原创 2015-09-25 15:06:47 · 1061 阅读 · 0 评论 -
hdu 5416 CRB and Tree(dfs+前缀和)
题意: 在一棵树上有n个点,n-1条边,每条边都有一个权值。 令f(u,v)f(u,v)等于u到v这条路径上的前缀和。 现在给你Q次询问(Q<=10)(Q<=10) 询问f(u,v)=sf(u,v)=s的路径有多少条。解析: 由于Q比较小可以直接利用O(n)复杂度的算法来做。 先用sum[u]保存下,从根节点到u的异或和是多少。 用一个hash map来保存,原创 2015-08-20 20:25:07 · 836 阅读 · 0 评论 -
hihocoder 1233 Boxes(bfs+状态压缩+hash表)
题意: 有n个卡槽,放有体积不同的n个空盒子,每次你可以移动一个空盒子到相邻卡槽,但前提是相邻卡槽若已经有空盒子,那么要移动的空盒子体积必须小于已有的空盒子,问要移动多少步才能使得从左到右,每个卡槽空盒子的体积递增。解析: 状态压缩,用一个longlong longlong的状态表示当前所有的状态,每个盘子所在的位置,每个盘子的位置用77位二进制表示,总共的状态为2472^{47},因为每原创 2015-09-22 16:36:20 · 899 阅读 · 0 评论 -
UVA - 10557 XYZZY(DFS + BFS)
XYZZYTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u[Submit] [Go Back] [Status] DescriptionIt has recently been discovered how to run open原创 2014-08-02 15:46:29 · 909 阅读 · 0 评论 -
UVA - 10004 Bicoloring (dfs和bfs两种解法)
Bicoloring In 1976 the ``Four Color Map Theorem" was proven with the assistance of acomputer. This theorem states that every map can be colored using only fourcolors, in such a way that no原创 2014-08-03 19:18:40 · 1140 阅读 · 0 评论 -
UVA - 10596 Morning Walk (欧拉回路+dfs)
Problem H Morning WalkTime Limit 3 Seconds Kamal is a Motashota guy. He has got a new job in Chittagong . So, he has moved to Chittagong from Dinajpur. He was getti原创 2014-08-05 08:59:22 · 969 阅读 · 0 评论 -
UVA - 10129 Play on Words (欧拉路径+dfs)
Play on Words Some of the secret doors contain a very interesting word puzzle. The team of archaeologists has to solve it to open that doors. Because there is no other way to open the doors, the puz原创 2014-08-04 14:37:49 · 994 阅读 · 0 评论 -
UVA - 10054 The Necklace (欧拉回路)
Problem D: The Necklace My little sister had a beautiful necklace made of colorful beads. Two successive beads in the necklace shared a common color at their meeting point. The figure belo原创 2014-08-04 15:45:52 · 1150 阅读 · 0 评论 -
UVA - 784 Maze Exploration (简单dfs)
Maze Exploration A maze of rectangular rooms is represented on a two dimensional grid as illustrated in figure 1a. Each point of the grid is represented by a character. The points of room原创 2014-07-30 09:10:12 · 769 阅读 · 0 评论 -
UVA - 657 The die is cast(二重dfs)
The Die Is CastTime Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64u[Submit] [Go Back] [Status] DescriptionInterGames is a high-tech st原创 2014-07-29 18:58:37 · 966 阅读 · 0 评论 -
UVA - 572 Oil Deposits(DFS和BFS两种解法)
Oil Deposits The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creat原创 2014-07-28 15:02:23 · 982 阅读 · 0 评论 -
UVA - 705 Slash Maze(dfs+floodfiil)
Slash Maze By filling a rectangle with slashes (/) and backslashes (), youcan generate nice little mazes. Here is an example:As you can see, paths in the maze cannot branch, so the w原创 2014-07-30 20:52:32 · 851 阅读 · 0 评论 -
UVA - 11624 Fire!(两次BFS 两种解法)
Problem B: Fire!Joe works in a maze. Unfortunately, portions of the maze have caught on fire, and the owner of the maze neglected to create a fire escape plan. Help Joe escape the maze.Given J原创 2014-08-07 19:55:45 · 1843 阅读 · 0 评论 -
hdu1728 逃离迷宫( bfs + 标记转向次数)
Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,gloria不能走到迷宫外面去。令人头痛的是,gloria是个没什么方向感的人,因此,她在行走过程中,不能转太多弯原创 2014-08-10 19:17:27 · 4258 阅读 · 0 评论 -
POJ - 2251 Dungeon Master (简单BFS)
Dungeon MasterTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u[Submit] [Go Back] [Status] DescriptionYou are trapped in a 3D dungeon and ne原创 2014-07-31 20:48:13 · 1135 阅读 · 0 评论 -
HDU - 1372 Knight Moves ( 简单BFS + floodfill )
Knight MovesTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescriptionA friend of you is doing research on the Traveling Knight Problem (TKP)原创 2014-07-31 16:09:42 · 824 阅读 · 0 评论 -
UVA - 10047 The Monocycle(BFS + vis数组的理解)
Problem A: The Monocycle A monocycle is a cycle that runs on one wheel and the one we will be considering is a bit more special. It has a solid wheel colored with five different colors as原创 2014-08-03 16:31:47 · 1338 阅读 · 0 评论 -
HDU 1175 连连看(bfs)
B - 连连看Time Limit:10000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它原创 2014-08-29 18:45:25 · 791 阅读 · 0 评论
分享