图论_BFS
文章平均质量分 58
TouchDreamer
这个作者很懒,什么都没留下…
展开
-
HDU【1180】诡异的楼梯
诡异的楼梯Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit StatusDescriptionHogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向. 比如下面的例子里原创 2016-01-19 18:14:30 · 256 阅读 · 0 评论 -
poj 【1426】 Find The Multiple
Find The MultipleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 25172 Accepted: 10363 Special JudgeDescriptionGiven a positive integer n, write a p原创 2016-04-19 20:02:52 · 231 阅读 · 0 评论 -
HDU 1429 胜利大逃亡(续)
引语 做了好多搜索的基础题,今天开始刷搜索的高级专题,成为一个搜索大神。题目分析 题目的意思我就不说了大家肯定能看懂,这里主要解决捡钥匙和开门的问题,注意这里捡了钥匙那么以前走过的路我们就可以回去走,因为以前的路上可能有没有开过的门,那么怎么表示呢,这里要用到状态压缩。 状态压缩的意思就是用数字来表示状态,这里我用2进制表示,比如1001表示这里我拿到了第一把钥匙和第4把钥匙,1原创 2016-05-06 18:12:22 · 520 阅读 · 0 评论 -
FZU 2150 Fire Game
Problem 2150 Fire Game Accept: 1344 Submit: 4753Time Limit: 1000 mSec Memory Limit : 32768 KB Problem DescriptionFat brother and Maze are playing a kind of special (hentai) game on a原创 2016-04-23 11:28:48 · 446 阅读 · 0 评论 -
HDU 5876 Sparse Graph(2016 ACM/ICPC Asia Regional Dalian Online)
题目大意 给出一个图,在这个图的补图中给定一个点,求这个点到其他所有点的距离,如果无法到达则输出-1.题目分析 因为这个图的点数比较多,因此遍历所有边很明显是不可能的,铁定超时,因此只能想一些办法来处理,我们可以将所有遍历过的点塞入链表中,如果每一次有bfs求出一些节点的值之后,那么则将这些节点从链表中删除,这样每次遍历的点将会少很多,这样就可以在O(n+m)的时间内得到结果。#incl原创 2016-09-11 18:49:27 · 327 阅读 · 0 评论 -
codeforces 723 A,B,C,D
A - The New Year: Meeting Friends 水题,中位数。。。#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int main(){ int a,b,c; while(scanf("%d%d%d", &a, &b, &c) != EOF){原创 2016-10-08 20:50:03 · 469 阅读 · 0 评论 -
HDU 5040 Instrusive(2014 ACM/ICPC Asia Regional Beijing Online )
题目分析 这道题的主要关键就是怎样定义一个能判断重复的状态,很明显,方向每4s一个循环,mod4即可,然后根据所在的x和y坐标就可以定义出状态state[4][505][505],关于在不在cardbox中无所谓,因为这个不需要时间去切换,那么很明显我们对于需要的时候就用cardbox,不需要的时候直接不用就可以了。#include <queue>#include <cstdio>#inc原创 2016-09-22 20:45:01 · 286 阅读 · 0 评论 -
区域坐标离散化
个人感想 经过了这次网络赛我知道了基础技巧的重要性,从挑战程序设计上一直在看常用技巧,包括尺取法,双向搜索等等。看了挑战程序设计的164页坐标离散化之后特写篇博文来终结一下。算法分析 首先对于一个很大的区域但是障碍很少的情况下直接进行广搜是很不合理的,因此我们需要对区域坐标进行离散化缩小区域,然后进行广搜,这样会大大减少时间复杂度。很明显这个区域里面有n条直线,那么我们需要将这条直线上的2原创 2016-10-12 10:27:41 · 878 阅读 · 1 评论 -
HDU 5925 Coconuts(离散化+bfs, 好题)
题目分析 求联通块但是R和C很大,用bfs很明显会超时,因此需要对其进行离散化,这一点我在我的前几篇博文中提过,但是本题还涉及到一个新的知识点,离散化之后还需要知道每个连通块中cell的个数,因此还需要一点小技巧,就是利用2个数组存储中间值。#include <map>#include <queue>#include <cstdio>#include <cstring>#include原创 2016-10-13 12:17:24 · 304 阅读 · 0 评论 -
Technocup 2017 - Elimination Round 1 A题
吐槽 今天真的是蠢哭了,A题错了2个小时,很强势。主要原因在于我认为这道题不用long long存也可以,但是事实并不是这样的,不用long long中途可能会tle,re,我用了深搜和广搜2种方法去写,但是还是写不出了,第五组错了,赛后数据一看,第五组是一个大数据,我发现了问题,改成long long后过了。留个文章提醒自己。。。DFS版#include <cstdio>#include原创 2016-10-15 20:42:13 · 669 阅读 · 0 评论 -
Codeforces Round #382 (Div. 2)
A. Ostap and Grasshopper 简单bfs。。#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 105;char s[maxn];int n, k, vis[m原创 2016-11-29 19:34:46 · 230 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2)
A. Mike and Cellphone 模拟即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;char s[20];int main(){ int n; while(scanf("%d", &n) != EOF){原创 2016-11-29 20:41:33 · 203 阅读 · 0 评论 -
武汉科技大学网络赛1575: Gingers and Mints
1575: Gingers and MintsTime Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lldSubmitted: 18 Accepted: 12[Submit][Status][Web Board]Descriptionfcbruce owns a farmland, the far原创 2016-04-18 20:05:44 · 1053 阅读 · 0 评论 -
HDU 5438 Ponds
题目大意这道题就是说把只连接一个池塘和不连接池塘的池塘给出掉,然后把最去掉之后得到的最终图形的每一个连通块中池塘数为奇数的每个池塘的对应的价值加起来,然后输出。题目分析计算每个点的度,并用数组存一下,同时用标记数组来表示这个池塘是否被去掉,如果度为0或者度为1,那么将该池塘去掉,同时将该点连接的池塘的度减1,如果减去之后的度数为1,那么则将该点加入队列,重复该步骤,知道队列为空为止。然后就是用bfs原创 2016-05-25 20:45:05 · 426 阅读 · 0 评论 -
POJ 3087 Shuffle'm Up
题目大意 就是给你2副牌,让你通过先从第二副牌的下面拿出一张牌,再从第一副牌的下面拿出一张牌,直到所有牌全部拿完,循环往复执行这个过程,如果循环了则输出-1,如果在这个过程中2副牌洗牌得到的牌就是题目中给的需要洗出来的牌,那么输出洗了多少次才得到这样的结果。题目解法 就是简单的模拟题,不停地洗牌,比较,还有判断是否循环就可以了,我的注释写的很详细,这里就不多说了。#include <cs原创 2016-04-29 21:29:25 · 368 阅读 · 0 评论 -
HDU【1242】Rescue
RescueTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 23025 Accepted Submission(s): 8139Problem DescriptionAngel was caught原创 2016-01-19 10:39:17 · 252 阅读 · 0 评论 -
HDU【1495】非常可乐
非常可乐Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8936 Accepted Submission(s): 3555Problem Description大家一定觉的运动以后喝可乐是一件很惬意的事情,原创 2016-02-17 11:18:15 · 557 阅读 · 0 评论 -
hdu 【4198】Quick out of the Harbour
Quick out of the HarbourTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1581 Accepted Submission(s): 625Problem DescriptionCaptai原创 2016-04-07 16:28:11 · 340 阅读 · 0 评论 -
蓝桥杯 历届试题 九宫重排
登录后才能查看试题。 历届试题 九宫重排 时间限制:1.0s 内存限制:256.0MB 锦囊1锦囊2锦囊3问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:123原创 2016-04-08 09:52:41 · 627 阅读 · 0 评论 -
POJ 【3414】 Pots
PotsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13408 Accepted: 5647 Special JudgeDescriptionYou are given two pots, having the volume of A an原创 2016-04-26 19:00:49 · 264 阅读 · 0 评论 -
poj 【2251】 Dungeon Master
Dungeon MasterTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 24669 Accepted: 9554DescriptionYou are trapped in a 3D dungeon and need to find the quic原创 2016-04-14 21:11:12 · 411 阅读 · 0 评论 -
POJ 【3278】 Catch That Cow
Catch That CowTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 70204 Accepted: 22082DescriptionFarmer John has been informed of the location of a fugit原创 2016-04-15 08:15:18 · 272 阅读 · 0 评论 -
POJ 【3984】 迷宫问题
迷宫问题Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 13874 Accepted: 8284Description定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,原创 2016-04-15 08:46:48 · 221 阅读 · 0 评论 -
hdu 【2612】 Find a way
Find a wayTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9068 Accepted Submission(s): 2908Problem DescriptionPass a year learnin原创 2016-04-15 16:14:21 · 311 阅读 · 0 评论 -
UVA 11624 Fire!
题目内容就是一个人在一个迷宫中,但是迷宫中有一些火种同时会向附近蔓延,问此人能不能不经过着火区域逃出迷宫,需要注意的是,着火点可能有多个,但是迷宫中只有一个人。题目分析首先利用建立一个time数组,保存火烧到该点所需要的时间,同时也要初始化time[]数组为一个无限大的数,即如果火烧不到该地点,那么该地点可以在任何时刻都可以被人走,首先写第一个bfs1求出火烧到能烧到的点所需要的最少时间,同时要用一原创 2016-04-28 16:09:45 · 330 阅读 · 0 评论 -
POJ 3126 Prime Path
题目大意 这道题目很长,其实意思就是跟你一个素数,然后让你转化为另一个素数,并且保证在转化的过程中保证中间值也为素数,注意,每次只能改变一个数值。题目解法 当然是用BFS了,因为要求最短路径,注意首先要构建一个素数表,这样可以减少查找时间,同时对素数的每一位的每个值进行改变,并将其添加入queue中,直到queue中取出的值为目标值。#include <cstdio>#include原创 2016-04-29 10:32:18 · 325 阅读 · 0 评论 -
UVA 10047 The Monocycle(bfs)
题目分析 这道题定义状态的时候需要多考虑,我用了四重数组,后面2维表示的分别是方向和颜色,同时旋转的时候对4取模时候如果是减一那么就加三mod 4,于是很简单了,就是输出极其恶心,不想吐槽了。。。#include <queue>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using原创 2017-03-05 15:49:33 · 222 阅读 · 0 评论