
BFS
文章平均质量分 83
九野的博客
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UESTC 1811 Hero Saving Princess
题意:T个测试数据n m //n个点 m条边m条无向边que//下面有que个数据a b // 表示a点的钥匙在b中 问,从0点开始能否遍历所有的点 思路:用BFS搜一遍即可,注意图是否连通,用并查集判断一下BFS()时,q为正常队列,p为走到那个点是锁住时将q中点移到p中这里为了思路清晰,先走一遍(这一遍就算拿到钥匙也不开门,就是这么走一遍先) #原创 2013-09-05 08:47:36 · 2037 阅读 · 0 评论 -
Codeforces 14D Two Paths 树的直径
题目链接:点击打开链接题意:给定一棵树找2条点不重复的路径,使得两路径的长度乘积最大思路:1、为了保证点不重复,在图中删去一条边,枚举这条删边2、这样得到了2个树,在各自的树中找最长链,即树的直径,然后相乘即可#include#include#include#include#include#include#include#include#include#i原创 2014-06-27 22:55:34 · 1458 阅读 · 0 评论 -
UVALive 6663 Count the Regions 离散+bfs染色_(:зゝ∠)_
题目链接:点击打开链接gg。。==#include #include #include#include #include #include #include #include using namespace std;#define ll long long#define inf 10000000#define N 55typedef pair pii;struct原创 2014-08-09 23:47:35 · 1531 阅读 · 0 评论 -
Codeforces 467D Fedor and Essay bfs
题目链接:题意:给定n个单词。下面有m个替换方式,左边的单词能变成右边的单词。替换任意次后使得最后字母r个数最少,在r最少的情况下单词总长度最短输出字母r的个数和单词长度。思路:我们认为一个单词有2个参数,则m个替换规则可以当成m个点的有向图。则某些单词的替换终点会确定,所以反向建图bfs一下。为了防止某些点被反复更新,所以把每个点的权值都放到栈里排个序然后bf原创 2014-09-19 09:07:03 · 1825 阅读 · 0 评论 -
ZOJ 3811 Untrusted Patrol 并查集
题目链接:点击打开链接题意:给定n个点m条边的无向图,k个触发器。下面k个数表示触发器安装在哪几个点。下面m行给出边最后有l个信号,给出信号发出的触发器的顺序。每个触发器只会发出一次信号,且一个点只有一个触发器。有一个人在遍历图。每经过一个点,那个点的触发器就会发出信号,问是否存在一种走法使得这个人遍历了所有点且触发器发出的信号顺序和给出的一样。思路:先原创 2014-09-07 19:14:44 · 2699 阅读 · 1 评论 -
URAL 1643 Attack of the Dark Fortress BFS
题目链接:点击打开链接把原创 2014-09-27 18:38:51 · 1340 阅读 · 0 评论 -
HDU 4123 Bob’s Race 树的直径+单调队列
题意:给定n个点的带边权树Q个询问。下面n-1行给出树下面Q行每行一个数字表示询问。首先求出dp[N] :dp[i]表示i点距离树上最远点的距离询问u, 表示求出 dp 数组中最长的连续序列使得序列中最大值-最小值 思路:求dp数组就是求个树的直径然后dfs一下。对于每个询问,可以用一个单调队列维护一下。O(n)的回答。#include #includ原创 2014-11-09 14:18:19 · 1825 阅读 · 0 评论 -
FOJ 2150 在二维草地上点火烧完所有草最少时间 BFS+图论+容斥
题意:给定一个平面图 . 为空地(不着火) # 为草开始可以选1-2个草堆点燃,每隔一秒会把上下左右的草引燃(开始时间为0秒)问把所有草烧光的最少时间 #include#include#include#include#include#include#includeusing namespace std;#define N 12int f原创 2013-12-22 23:03:20 · 2444 阅读 · 0 评论 -
URAL 2017 Best of a bad lot 二分图染色 使x集点数最少
题目链接:点击打开链接题意:有n个嫌疑犯。[1,n]第i行表示第i个嫌疑犯说案发时他所在的地名,后面一个数m表示当时他看到m个人,后面m个数表示他看到的人。找出最小的犯罪团体(即多数人都是好人原则)若大家都是好人则随便输出一个人当坏人==思路:当一个人x被2个不同地方的人u, v看到时,则u v其中一个一定是犯人。所以u-v建一条边。然后二分图染色使得x点集点数原创 2014-12-09 16:59:43 · 1661 阅读 · 0 评论 -
UVA 1377 Ruler bfs+状压搜索
题目链接:点击打开链接题意:给定n个刻度。下面是n个刻度。要构造一个尺子使得上面的n个刻度能直接量出来。且要满足尺子上的刻度线个数最少,最少的情况下尺子最短。第一个刻度总为0题目保证总是存在思路:bfs,每次枚举新加一个刻度后,哪些可以直接量出来,用二进制表示,然后暴力搜import java.io.PrintWriter;import java.util.Arr原创 2015-01-22 10:07:02 · 1400 阅读 · 0 评论 -
HDU 4039 The Social Network bfs
算了下复杂度好像是n^3 就感觉不大好做。结果n^31a。。。#include #include #include #include #include #include #include #include using namespace std;#define eps 1e-9#define PI acos(-1.0)#define N 1005#define inf原创 2014-05-14 12:51:48 · 1501 阅读 · 0 评论 -
Codeforces 429B Working out bfs构造
题目链接:点击打开链接题意:给定n*m的矩阵有一个人a从左上角↖走到右下角↘,只能↓或→走另一个人b从左下角↙走到右上角↗,只能↑或→走使得2个人的路径有且仅有一个格子是相交的。统计2个人的权值和(相交格子的权值和不计)问最大的权值和是多少。思路:首先转换一下题意,也就是找一个格子与4个角落连不相交的线。我们观察相交的那个格子,那个格子的上下左右必然对应着一个角原创 2014-05-12 15:34:42 · 2153 阅读 · 0 评论 -
HDU 1226 BFS
注意密码位数要点题目都已说明 ac就好 #include#include#include#include#include#define N 5100#define L(x) (x<<1)#define R(x) (x<<1|1)using namespace std;inline int Max(int a,int b){return a>b原创 2013-10-10 21:13:28 · 1560 阅读 · 0 评论 -
HDU 3912 BFS走迷宫
题意:给定n*m 大小矩阵, 出发点所在列, 终点所在列 (行统一在第一行和最后一行)下面 2*i - 1 行给出 矩阵中墙壁存在与否 问沿着右边墙壁走,从起点走到终点 ,再从终点走到起点能否遍历所有方格思路:BFS模拟题意,队列存边 #include#include#include#include#include#include#inclu原创 2013-10-26 18:41:39 · 1737 阅读 · 0 评论 -
HDU 4751 交叉染色判断二分图
修改后的题意是:n个点,下面n行i行表示与i点相连的单向边,为0表示该行输入结束问: 把点分到2个图中,每个图都要保证是完全图能否做到贴个学长的代码#include#include#include#includeusing namespace std;//const int inf = 1000000000;const int N = 500;con原创 2013-09-21 18:00:47 · 2475 阅读 · 0 评论 -
HDU 4771 BFS + 状压
题意:给定n*m的地图#为墙 @为起点下面K个坐标 问:遍历K个给定坐标,需要的最小步数 思路:因为K 最大只有4 状压 当前是否走过某点用二进制 的 i 位 0、1表示 第i个点是否走过 与hdu 1429题相似 http://www.cnblogs.com/xianxingwuguan/p/3301318.html #include原创 2013-11-09 18:06:43 · 3761 阅读 · 5 评论 -
POJ 1129 四色定理+spfa
题意:最多有26个字母n行表示有n个字母下面n行给出 该字母和哪些字母相邻问:至少要几种颜色染色后相邻字母不同色 四色定理至多4种 暴力枚举#include#include#include#include#include#include#includeusing namespace std;#define N 30struct E原创 2013-11-24 18:43:14 · 1477 阅读 · 0 评论 -
HDU 3468 BFS + 二分匹配
开始建图打搓了,参考了大牛的题解打的版本比较清爽题意:给定n,m表示下面地图大小.表示空地 #表示墙 *表示黄金 行走的路线是A->Z->a->z 规则,必须从字母依次走最短路到下一个字母(字母必须连续走,如果走不到下一个字母或者地图上不存在下一个字母则输出-1)每次走到下一个字母可以取走路途上的一个黄金,问最多能取走几个黄金 思路:走到最后一个字母就结束了,所以希望从原创 2013-09-03 11:17:12 · 2435 阅读 · 0 评论 -
HDU 3832 BFS
题意:给定n个圆,若2个圆之间相交或相切我们称之为连通问前3个圆连通的情况下,能删除最多多少个圆。题意可以转为:给定n个点(3-200)的无向图,0 、1、2这3个点(即输入的前3个点)连通情况下删掉一些点,问最多能删多少点思路:暴力枚举每个点到0,1,2的单源最短路。虽然那个点所在的路径存在重复,但一定有某点使得此路径不重复。这样就有了对答案的原创 2014-04-16 23:04:24 · 1395 阅读 · 0 评论 -
ZOJ 3781 Paint the Grid Reloaded BFS
题意:给定n*m 的矩阵每个格子有O X 两种颜色可以选择1个同颜色的块,翻转为另一个颜色。问翻转为只有1种颜色需要最小几次操作bfs枚举每个第一次选择的节点#include#include#include#include#include#include#include#includeusing namespace std;#define N 45原创 2014-04-17 17:22:45 · 2163 阅读 · 2 评论 -
Codeforces 375C BFS+射线,闭合曲线内挖宝防挖地雷
题意:.是空地 #是墙, 12-8(连续)是宝藏,每个宝藏价值是下面对应位置的数字闭合曲线内不能有 B(地雷)S是起点+终点走一步要扣一块钱,问最后能赚到多少钱思路:BFS + 射线 判断宝藏是否在闭合曲线内,可以判断经过了宝藏下方的次数(只需要判断经过下方次数即可,因为起点终点相同,所以经过上方次数与下方次数要么相同要么±2关键的一点:奇偶数相同)原创 2014-01-03 19:27:02 · 2095 阅读 · 0 评论 -
Codeforces 575G Run for beer 最短路
题解链接:http://www.cygmasot.com/index.php/2015/09/07/codeforces_575g/题目链接:http://codeforces.com/contest/575/problem/GG. Run for beertime limit per test1 secondmemory limit原创 2015-09-07 20:15:52 · 2945 阅读 · 0 评论