- 博客(744)
- 资源 (1)
- 收藏
- 关注
原创 HDU 3018 Ant Trip(欧拉回路:一笔画问题)
HDU 3018 Ant Trip(欧拉回路:一笔画问题)http://acm.hdu.edu.cn/showproblem.php?pid=3018题意:给你无向图的N个点和M条边,保证这M条边都不同且不会存在同一点的自环边,现在问你至少要几笔才能所有边都画一遍.(一笔画的时候笔不离开纸)分析:首先根据给出的边我们只需要分别处理每个连通分量需要多少笔即可. 如果该
2014-06-12 19:49:51 2419
原创 HDU 1878 欧拉回路(简单欧拉回路判定)
HDU 1878 欧拉回路(简单欧拉回路判定)http://acm.hdu.edu.cn/showproblem.php?pid=1878题意:给你N个点和M条无向边,问你这个图是否存在欧拉回路.分析:无向图欧拉回路存在图连通且所有点度为偶数 直接用并查集+degree处理即可.AC代码:#include#includeusing namespace std
2014-06-12 18:48:26 1299
原创 POJ 1386 Play on Words(判定图欧拉通路是否存在)
POJ 1386 Play on Words(判定图欧拉通路是否存在)http://poj.org/problem?id=1386题意:给你多个单词,问你能不能将所有单词组成这样一个序列:序列的前一个单词的尾字母与后一个单词的头字母相同.分析:把每个单词看成一条有向边,把26个字母看成是图的节点.这就是一个问你有向图是否存在欧拉通路/回路的问题. 有向图存在欧拉路必须满
2014-06-12 08:53:59 1157
原创 POJ 2230 Watchcow(欧拉回路:输出点轨迹)
POJ 2230 Watchcow(欧拉回路:输出点轨迹)http://poj.org/problem?id=2230题意:现在有N个农场和M条路,要求你走过这M条路每条2次且这两次是反向的.要你输出从1号农场走到完所有M条路两次之后回到1号农场的点的轨迹.保证这种轨迹存在.其中点(农场)从1开始编号到N.分析:本题其实就是要求输出一个欧拉回路的点轨迹.其中每条边分为两个方向的有向边分
2014-06-12 08:15:12 1173
原创 POJ 1392 Ouroboros Snake(数位欧拉:输出路径)
POJ 1392 Ouroboros Snake(数位欧拉:输出路径)http://poj.org/problem?id=1392题意:一个n位的二进制数一共有2^n个,现在要你用一个长度为2^n的模板二进制数(且要求字典序最小)来”生成所有n位的二进制数”,具体生成过程如下:从0号位置到2^n-1位置开头依次取模板二进制数的连续(如果到了尾部,就从头部循环取)n位二进制数,我们要求这
2014-06-11 22:10:24 1066
原创 POJ 1300 Door Man(欧拉回路判定)
POJ 1300 Door Man(欧拉回路判定)http://poj.org/problem?id=1300题意:给你N个房间(图节点)以及房间之间的门(图的边),且给你初始的房间号M,问你从初始房间走,可不可以经过每个门仅1次,最后到达0号房间.且所有的门都被你走过1次?分析:仔细一看,其实这个问题就是判定是否存在无向图的欧拉回路或通路的问题.本题要理清所有可能的情况,理清了之后就
2014-06-11 20:21:16 1246
原创 POJ 1780 Code(欧拉回路+模拟栈)
POJ 1780 Code(欧拉回路+模拟栈)http://poj.org/problem?id=1780题意:(题意较复杂)大致思想是给你一个n,表示一个由0-9数字构成的n位密码.这个解锁过程如下:锁一直读入所有内容.只要当它最后读入的n个数字与密码吻合,那么就表示解锁了.现在要你输出一个长度为10^n+n-1的数字序列,这个数字序列包括了n位密码的所有可能.(也就是说输入这个序列,必
2014-06-11 13:36:54 1661
原创 POJ 2337 Catenyms(有向欧拉图:输出欧拉路径)
POJ 2337 Catenyms(有向欧拉图:输出欧拉路径)http://poj.org/problem?id=2337题意:给你一组N个单词,现在要你输出这样一组单词序列。该序列包含了所有N个单词,且该序列中的前一个单词的最后一个字母与后一个单词的第一个字母相同。如果存在多个这种首尾相连的序列,就输出字典序最小的那个即可。分析:首先我们把每个单词看成一条边,把每个单词的首尾两个
2014-06-10 22:28:21 1627
原创 POJ 1041 John's trip(欧拉回路+输出路径)
POJ 1041 John's trip(欧拉回路+输出路径)http://poj.org/problem?id=1041题意:给你一个无向图,数据格式如点x 点y 边Z,表示由x点和y点构成了Z边。现在要问你该图中是否存在欧拉回路,如果存在,则输出字典序最小的那条欧拉回路(输入按序走过的所有边标号)。且题目中保证了该无向图是连通的。分析:首先欧拉路径的输出方式可以参考刘汝佳入门经典P
2014-06-10 18:26:18 2108
转载 欧拉图
欧拉图转自:http://www.cnblogs.com/destinydesigner/archive/2009/09/28/1575674.html1 定义欧拉通路(Euler tour)——通过图中每条边一次且仅一次,并且过每一顶点的通路。欧拉回路 (Eulercircuit)——通过图中每条边一次且仅一次,并且过每一顶点的回路。欧拉图——存在欧拉回路的图。 2
2014-06-10 11:08:15 1311
原创 HDU 1016 Prime Ring Problem(DFS回溯+素数判断)
HDU 1016 Prime Ring Problem(DFS回溯+素数判断)http://acm.hdu.edu.cn/showproblem.php?pid=1016题意:给你一个n,要求输出所有由1,2,3…n构成的素数环。所谓素数环就是该环中的任意相邻两个数的和是一个素数。且按字典序从小到大输出。分析:本题在刘汝佳的入门经典里也有。首先利用素数筛选法求出100以内的所有素数
2014-06-10 10:43:50 877
原创 HDU 1044 Collect More Jewels(BFS+DFS)
HDU 1044 Collect More Jewels(BFS+DFS)http://acm.hdu.edu.cn/showproblem.php?pid=1044题意:给你一个R*C的棋盘迷宫,要求你在t时间走出迷宫且输出你能获得的最大珠宝价值和.分析: 首先我们可以知道图中的有效点只有3种:起点,所有宝珠,终点.其中起点我们编号为0,珠宝编号为1到M,终点编号为M
2014-06-09 21:11:27 993
原创 HDU 1501 Zipper(DFS)
HDU 1501 Zipper(DFS)http://acm.hdu.edu.cn/showproblem.php?pid=1501题意:给你3个字符串A,B和C.问你由字符串A和B的字符能否构成C字符串.你可以任意组合A和B的字符,但是A中或B中所有字符间的相对位置不能改变.且C字符的个数=A字符个数+B字符个数.分析:直接DFS构找出C字符即可,对于当前DFS,我们保存当前正在
2014-06-09 18:48:57 897
原创 HDU 1045 Fire Net(DFS回溯)
HDU 1045 Fire Net(DFS回溯)http://acm.hdu.edu.cn/showproblem.php?pid=1045题意:给你一个N*N的棋盘,棋盘中有空白格和墙’X’,现在要你在空白格上放大炮,要求任意两个大炮不能在同行或者同列,除非他们之间有一个’X’墙.问你最多能放几门大炮.分析:本问题与8皇后问题有一点点类似.八皇后问题是对于每行的情况看放哪个位置,
2014-06-09 17:21:17 1097 1
原创 HDU 1010 Tempter of the Bone(DFS回溯+剪枝)
HDU 1010 Tempter of the Bone(DFS回溯+剪枝)http://acm.hdu.edu.cn/showproblem.php?pid=1010题意:给你一个N*M的迷宫和一个时间T,迷宫中为X的格子是不能走的,现在给你起点和终点.问你能不能在正好T秒的时候从起点到达终点,且不能走回头路.分析:我感觉本题用BFS应该也挺好解决的,不过要注意利用代价函数h()来剪
2014-06-09 16:10:20 804
原创 HDU 4536 XCOM Enemy Unknown(DFS+回溯构造)
HDU 4536 XCOM Enemy Unknown(DFS+回溯构造)http://acm.hdu.edu.cn/showproblem.php?pid=4536Problem DescriptionXCOM-Enemy Unknown是一款很好玩很经典的策略游戏.在游戏中,由于未知的敌人--外星人入侵,你团结了世界各大国家进行抵抗.随着游戏进展,会有很多的外星人进攻事件.
2014-06-09 15:00:08 946
原创 HDU 4403 A very hard Aoshu problem(DFS)
HDU 4403 A very hard Aoshu problem(DFS)http://acm.hdu.edu.cn/showproblem.php?pid=4403题意:给你一串数字,你要在该串数字中间的某些位置加一个等号=和一个或多个+号,使得那串数字编成一个等式.问你有多少种方式?分析:本题需要多加回顾. 首先我们可以注意到=号有且只有一个,+号可能有多个或没
2014-05-31 11:10:39 929
原创 POJ 2676 Sudoku(DFS回溯)
POJ2676 Sudoku(DFS回溯)http://poj.org/problem?id=2676题意:给你一个9*9的数独棋盘,但是该数独未填完,你输出完整的数独解.分析:其实本题最快的方法应该是用Donald Knuth提出的舞蹈链.具体可见刘汝佳:训练指南第六章.DFS回溯构造,不过我们按从上到下,从左到右填(1-9)个数字,但是我们怎么知道我们当前填的数是否合法呢?
2014-05-30 21:04:23 1679
原创 POJ 1011 Sticks(DFS回溯剪枝)
POJ 1011 Sticks(DFS回溯剪枝)http://poj.org/problem?id=1011题意:给你N根长度可能不同的小棍子,它们是由M根长棍子切断而成的,M未知.现在要你求出原始棍子的最小合法长度是多少?分析:本题是POJ2362的加强版:http://blog.csdn.net/u013480600/article/details/27581015
2014-05-30 16:12:54 1135
原创 POJ 2362 Square(DFS回溯构造)
POJ2362 Square(DFS回溯构造)http://poj.org/problem?id=2362题意:给你M根长度可能不同的棍子,问你用着M根棍子能否拼成一个正方形.分析:首先将M根棍子的总长sum求出,sum%4必须==0且任意一个棍子的长度 用vis[i]数组表示当前第i根棍子是否被使用了. 然后用dfs来判断能否构成正方形的三边即可.其中
2014-05-29 22:24:47 2324
原创 POJ 1573 Robot Motion(DFS)
POJ 1573 Robot Motion(DFS)http://poj.org/problem?id=1573题意:给你一个R*C的棋盘字母矩阵,该矩阵只由N,S,E,W 4个字母构成,分别表示机器人如果走到当前点将往哪个方向走下一步.然后给了你机器人的入口位置(始终在最上一行的某一列做入口),要你输出机器人在该字符矩阵中的行走状况:几步能走出棋盘或者要进入一个几步的死循环.分析:网
2014-05-29 21:04:01 984
原创 memset用法
memset用法首先如果是一个int a[10]的数组,只可以对它进行两种操作:memset(a,0,sizeof(a))操作可以得到a的全0数组.memset(a,-1,sizeof(a))操作可以得到a的全-1数组.如果要置a为其他置的话就会出现不可预测的值.这个原因很好解释:因为memset操作是对字符进行操作的,且计算机中保存带符号数都是按补码保存的.当我们置a
2014-05-29 20:21:00 897
原创 POJ 1111 Image Perimeters(DFS)
POJ 1111 Image Perimeters(简单DFS)http://poj.org/problem?id=1111题意:(L又是一道题意复杂的简单题)给你一个R*C的仅有字符’.’(表空格)和字符’X’(表物体)构成的棋盘,现在在给你一个坐标(从1计数),要你算出这个与这个坐标点相连的所有’X’构成物体的外表面周长.如上的棋盘,构成了两个X物体,其中下面那个小的外周长为4
2014-05-29 19:53:39 1017
原创 POJ 1088 滑雪(DFS+DP)
POJ1088 滑雪(DFS+简单DP记忆化搜索)http://poj.org/problem?id=1088题意:给你一个R*C的数字矩阵,要你找出矩阵中一条递减的最长路径的长度.即从矩阵的一个点出发,只能走数字递减的上下左右4格中的一格,能走的最长距离(包括起点).分析: 首先我们令len[r][c]表示从(r,c)点出发的最长路径长度. 可以知道如
2014-05-29 18:22:47 1069
原创 POJ 1664 放苹果(DFS)
POJ 1664 放苹果(DFS)http://poj.org/problem?id=1664题意: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。分析:注意到盘子是一样的,方法5 1 1 和1 5 1 只能算一种.所以我们需要给每个盘子放的苹果数定序. 也就是说我们从少往多放,
2014-05-29 17:36:09 1107
原创 POJ 1321 棋盘问题(DFS回溯)
POJ 1321 棋盘问题(DFS回溯)http://poj.org/problem?id=1321题意:要在n*n的不规则棋盘(棋盘上可能有不能放棋子的格子)上放k(k分析:类似于8皇后问题,可以同样的dfs回溯构造.令cnt表示当前我们已经放了几个棋子了,且我们放棋子是从上往下放的(即从行号小的行放到行号大的行).这样我们就保证我们放棋子的时候行号不会重复.接下来用vi
2014-05-29 16:51:48 1008
原创 POJ 2034 Anti-prime Sequences(素数预处理+DFS回溯)
POJ 2034 Anti-prime Sequences(素数预处理+DFS回溯)http://poj.org/problem?id=2034题意:给你一个n,n+1,n+2,n+3,…m的数字序列,要你重新安排该序列的顺序,使得任意连续i个(2分析: 首先用筛选法预处理出1000*10以内的所有素数,然后再用dfs回溯构造出字典序最小的合法序列. 其
2014-05-29 12:27:50 1371
原创 HDU 2531 Catch him(BFS:判断是否存在路径)
HDU 2531 Catch him(BFS:判断是否存在路径)http://acm.hdu.edu.cn/showproblem.php?pid=2531题意:给你一个R*C的棋盘,但是现在不是一个格子移动了,而是多个格子组成的一个防守队员平移一个距离,但是这个组合防守队员格不可以转动身体,且身体不能触碰到O格子.最终只要身体能触碰到Q格子就算赢.分析:BFS的精髓在于你设计一个结构
2014-05-29 10:39:53 1476
原创 HDU 1242 Rescue(BFS或BFS+优先队列)
HDU 1242 Rescue(BFS或BFS+优先队列)http://acm.hdu.edu.cn/showproblem.php?pid=1242题意:有个R*C的迷宫,里面有一个a和多个r和多个x,现在你要从这多个r点走到a点去,且如果各自是x,则要花时间消灭守卫,即多花1分钟.问你从任意r点到a的最少时间是多少?分析: 网上题解多说用优先队列,但是对于为什么用优
2014-05-28 21:10:03 1293
原创 HDU 1175 连连看(BFS)
HDU1175 连连看(BFS)http://acm.hdu.edu.cn/showproblem.php?pid=1175Problem Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过两次,那么这两个棋子就可以在棋
2014-05-28 19:47:38 1356
原创 HDU 1401 Solitaire(棋盘状态BFS)
HDU 1401 Solitaire(棋盘状态BFS)http://acm.hdu.edu.cn/showproblem.php?pid=1401题意:对于一个8*8的棋牌,其中有4个棋子,每个棋子可以往上下左右各走一步,但是如果那一步不是空格而是另外一个棋子,那么就越过这个棋子再前进一步.现在给出了初始棋盘状态,和终结棋盘状态,问你在8步内(分析:本题应该用双向BFS,单BFS容易超
2014-05-28 18:39:10 2065
原创 HDU 1253 胜利大逃亡(简单三维BFS)
HDU 1253 胜利大逃亡(简单三维BFS)http://acm.hdu.edu.cn/showproblem.php?pid=1253题意:有一个A*B*C的三维网格,问你从起点(0,0,0)走到终点(A-1,B-1,C-1)最少需要花多少时间.且网格中有障碍格.分析:三维网格的难点在于想象出一个符合二维BFS要求的图形.如果只有2维,那么就是B*C的二维网格了,很好处
2014-05-28 12:28:54 1312
原创 HDU 1312 Red and Black(简单BFS)
HDU1312 Red and Black(简单BFS)http://acm.hdu.edu.cn/showproblem.php?pid=1312题意:给你一个R*C的网格,网格只有黑格和红格,初始你在一个黑格上,然后你只能走黑格,问你最多能走多少个黑格.(包括起点)分析:直接BFS,算是最基础的BFS了吧.AC代码:#include#include#include
2014-05-28 11:53:35 1132
原创 HDU 1547 Bubble Shooter(BFS)
HDU 1547 Bubble Shooter(BFS)http://acm.hdu.edu.cn/showproblem.php?pid=1547题意:如下图的游戏,R*C的棋盘格局,左上角是第1行1列,其中奇数行可以放C个不同颜色的气球,偶数行可以放C-1个不同颜色的气球.且如果我们新打一个气球到给定位置,>=3个相连的同颜色气球会爆炸,且如果某一块气球没有和最顶端的墙想连也会爆炸.
2014-05-28 10:06:27 1552
原创 HDU 1180 诡异的楼梯(BFS:时间动态图)
HDU 1180 诡异的楼梯(BFS:时间动态图)http://acm.hdu.edu.cn/showproblem.php?pid=1180Problem DescriptionHogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向. 比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向,
2014-05-27 19:54:55 1404
原创 HDU 2612 Find a way(BFS)
HDU 2612 Find a way(简单BFS)http://acm.hdu.edu.cn/showproblem.php?pid=2612题意:给你一个N*M的迷宫,现在给你A和B的初始坐标,他们要在’@’点集合(迷宫可能有多个’@’点),问你他们集合的最少时间是多少.分析:直接从A和B的初始坐标分别做两次BFS即可,然后对于每个’@’点,算出A和B分别到’@’的距离,相加即可.
2014-05-25 21:58:34 1046
原创 HDU 1430 魔板(BFS+HASH+置换)
HDU 1430 魔板(BFS+HASH+置换)http://acm.hdu.edu.cn/showproblem.php?pid=1430Problem Description在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板。魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示。任一时刻魔板的状态可用方块的颜色序列表示:从魔板的左上角开始,按顺时针
2014-05-25 19:52:13 1299
原创 HDU 1495 非常可乐(BFS:3杯倒水)
HDU 1495 非常可乐(BFS:3杯倒水)http://acm.hdu.edu.cn/showproblem.php?pid=1495题意: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N
2014-05-25 17:37:31 1238
原创 HDU 1072 Nightmare(BFS)
HDU 1072 Nightmare(BFS)http://acm.hdu.edu.cn/showproblem.php?pid=1072题意:有一个N*M的迷宫,你要从起点2走到终点3,且你身上有炸弹,这个炸弹6分钟后爆炸,你在迷宫中每走一步需要1分钟,且迷宫中有重置装置(4格子),可以使得你的炸弹爆炸时间重新变为6.不过不论是你到达终点还是你到达重置装置的地方,你身上的炸弹爆炸时间一定
2014-05-25 14:01:33 1033 1
原创 HDU 1226超级密码(数位BFS)
HDU 1226超级密码(数位BFS)http://acm.hdu.edu.cn/showproblem.php?pid=1226Problem DescriptionIgnatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息:密码是一个C进制的数,并且只能由给定的M个数字构成,同时密码是一个给定十
2014-05-25 12:47:17 1810
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人