搜索
浪子小黄人
这个作者很懒,什么都没留下…
展开
-
A Dicey Problem (Uva 810 & poj 1872 bfs)
题意:n*m的地图,每个格子上有数字,骰子起始在(sx,sy),并告诉骰子上面的数字和正对你的数字,现在骰子在图上滚动,骰子能滚动当且仅当要滚到的格子上的数与滚之前骰子上面一面的数字相同或者为-1,问骰子是否能够滚一圈回到原点,输出路径,每9个一行。思路:骰子两个面就可以确定状态,开一个四维数组标记状态。注意以下代码死活在poj交C++过不了,G++可过,Uva也可过。写得很难看。。原创 2015-08-19 16:43:37 · 667 阅读 · 0 评论 -
Seven Puzzle (Aizu 0121 反向搜索bfs)
这段时间要转向搜索了,图论先缓一缓,但也不能完全放了,得带着刷图论。把峰峰博客上的搜索刷一遍。这一题具体看:点击打开链接原创 2015-08-12 19:00:50 · 830 阅读 · 0 评论 -
Mahjong tree (hdu 5379 dfs)
题意:一颗n个节点n-1条边的树,现在要给每个节点标号(1~n),要求:(1)每一层的兄弟节点的标号要是连续的(2)每一颗子树的所有节点标号是连续的。问有多少种标号方案。思路:对于每一层顶多只能存在2个非叶子节点,否则无解;对于每一层有x个叶子节点,y个非叶子节点,那么ans=(ans * x!)%mod,另外如果y!=0,还得ans=2*ans%mod。原创 2015-08-11 21:20:03 · 786 阅读 · 0 评论 -
Cake (hdu 5355 构造+dfs)
题意:有n个蛋糕,大小分别为1~n,问是否可以将它们平分为m份,输出方案。思路:不能直接从后往前贪心,具体看这位大神博客,很详细点击打开链接 另外不知道4*m是怎么得到的不清楚,望知道的可以解答一下~原创 2015-08-09 20:35:27 · 836 阅读 · 0 评论 -
Chapaev and Potatoes (URAL 1809 暴力)
题意:四个土豆在20*20的方格上,告诉起始位置,要求改变某些土豆的位置使得每个土豆只有一个土豆与他在同一行或同一列,要求改变的次数尽量小。原创 2015-08-09 15:12:00 · 685 阅读 · 0 评论 -
Dearboy's Puzzle (poj 2308 搜索 dfs+bfs)
题意:连连看游戏,给定一个局面判断最后能不能消完。思路:用dfs来确定消去哪一个格子(x,y),在dfs中进行bfs,看(x,y)周围有多少格子可以和(x,y)相消,找到之后再用dfs枚举与哪一个相消或者当前(x,y)不消。注意一个剪枝,存在下面这种情况的肯定不符合题意:************AB******BA************另外,注意题意的消去方法,连线最多只转两个弯。原创 2015-07-06 20:42:13 · 1754 阅读 · 1 评论 -
The Buses (poj 1167 搜索)
题意:给出n个时刻,这n个时刻有车到站,问最少要多少条路线可以满足输入。每条路线在0~59之间至少要停两站,到站之间的时间间隔是相等的。原创 2015-07-05 16:59:31 · 1395 阅读 · 0 评论 -
Key Vertex (hdu 3313 SPFA+DFS 求起点到终点路径上的割点)
题意:n个点m条边的有向图,问存在多少个点使得去掉这个点及相连的边后起点和终点不再联通。思路:很容易想到Tarjan算法求割点,但是稍微一想就会知道不对,因为Tarjan算法求的是整个图的割点,而这里题目只要求能使起点和终点不连通的点。然后我们先用SPFA求出一条最短路径,那么要求的“割点”一定都在这条路径上,仔细想想就会知道。求出最短路径后从起点dfs,直到找到距离start最远的且在最短路径上的点v,那么v就是一个割点,这时更新start,令start=v,重复上面的dfs直到终点。为什么这么做呢?你原创 2015-07-26 10:29:51 · 1050 阅读 · 0 评论 -
Easy billiards (zoj 3761 并查集+DFS)
题意:一个平面上有n个点的坐标,现在用一个球a去撞另外一个球b,b被撞到无穷远,a停在b的位置,问怎样撞可以使最后平面上的球最少。思路:先用并查集将在同一行或者同一列上的球连成一个集合,用dfs搜索输出。原创 2015-07-08 22:43:44 · 808 阅读 · 0 评论 -
C. Ice Cave (CF #301 (Div. 2) 搜索bfs)
题意:n*m的地图,'X'表示有裂痕的冰块,'.'表示完整的冰块,有裂痕的冰块再被踩一次就会碎掉,完整的冰块被踩一次会变成有裂痕的冰块,现在告诉起点和终点,问从起点能否走到终点并且使终点的冰块碎掉。不能原地跳。起点和终点可能会在同一个位置。思路:若终点vis>=2就表明可以。原创 2015-05-01 09:36:59 · 1343 阅读 · 0 评论 -
Test for Job (poj 3249 记忆化搜索)
题意:n个点m条边的有向图,每个点有权值,现在从入度为零的点出发到出度为零的点,求路径上的权值之和最大为多少。思路:点比较多,肯定不能用矩阵存图,要用到邻接表,建图时统计入度为零的点,从该点出发dfs,找出从这一点出发能得到的最大值。原创 2015-07-20 20:25:33 · 902 阅读 · 0 评论 -
XYZ and Drops (hdu 5336 bfs)
题意:n个大水滴在r*c的平面上,(x,y)处有一水滴分裂,分成四个小水滴向四个方向前进,其他n个大水滴的初始大小为1~4,若大水滴被小水滴撞到大水滴大小增加一,当大水滴大小超过四时会分裂,同样向四个方向,这样连锁反应,问最后T时刻n个水滴的状态。思路:bfs,比赛写的时候一个小bug没看出来,思路上的一点漏洞,遗憾。原创 2015-07-31 10:18:02 · 923 阅读 · 0 评论 -
Fill (Uva 10603 bfs 倒水问题)
题意:三个杯子容量分别为a,b,c,现在c是满的,a和b是空的,两个杯子 i 向 j 倒水,要么 i 倒完了 j 还没满,要么 j 满了 i 还有剩余,问达到某个杯子水量为d时总共倒得最小水量是多少?如果不能达到d,找一个小于d并且离d最近的一个解。思路:倒水问题,但题目要求的是总的到水量,所以在bfs时到达过的状态还要检查更新,可能当前我确实到达d了用了sum水量,但可能后面还有比sum更小的解。网上有很多代码都是错误的,很多就是错在这里。原创 2015-08-13 09:24:12 · 958 阅读 · 0 评论 -
Bloxorz I (poj 3322 水bfs)
题意就不具体说了,去这里玩一下就知道了戳我玩游戏,还是很好玩的~思路:Move函数写得很蛋疼,我是硬来的,一定要细心。原创 2015-08-19 09:46:31 · 1152 阅读 · 0 评论 -
Black And White (hdu 5113 dfs+剪枝)
题意: N*M的格子用K种颜色图,每种颜色有ci个,并且每两个相邻的格子不能图一样的颜色,输出一种可行方案。思路:dfs+剪枝,若某种颜色的数量大于剩下未图格子数量的一半则一定无解。原创 2015-09-02 10:02:57 · 480 阅读 · 0 评论 -
Finding Nemo (poj 2049 超级蛋疼的bfs)
题意:二位坐标内告诉一些墙和门,儿子被困在里面,父亲在(0,0)处出发去救儿子,要求穿过的门数最少,输出最少门数。思路:我是把它转化成了平常的二维地图,先从(0,0)dfs走遍迷宫外的所有能到达的点并标记,然后从儿子所在地出发bfs,step记录穿过了多少扇门,当走到迷宫外遇到dfs访问过的点就表示出来了。今天做的几个poj上的题怎么都这么蛋疼,实在无语了,实际测试数据有大于199的!!!具体去看discuss吧,我也是看了里面的才过。。。原创 2015-08-17 21:25:36 · 844 阅读 · 0 评论 -
Pushing Boxes (poj 1475 嵌套bfs)
题意:推箱子游戏,把箱子B推到T,人初始在S,输出推箱子次数最少的方案。一开始把题目看错,以为是总步数最小,写完交了果断WA,看了discuss才知道。思路:对箱子bfs,箱子移动一步再对人相应的bfs。实在无力吐槽,方向数组顺序必须是北南西东,调了一个下午,坑爹啊!!原创 2015-08-17 16:28:22 · 1243 阅读 · 0 评论 -
The Rotation Game (poj 2286 搜索IDA*)
题意:如图24个位置上有数字1~3,可以进行移动,每次对一条7个数进行平移,问怎样移动使得中心的8个方格为相同的数字,输出方案和最后中心的数字。思路:IDA*,有八个操作,主要是这个移动操作不好弄,开一个辅助数组记录移动的位置关系。每移动一次中心改变一个数,以此构造h()。原创 2015-08-17 19:17:59 · 842 阅读 · 0 评论 -
Shredding Company (hdu 1539 dfs)
题意:给一串数把他拆成若干份,使他们的和小于等于给定的goal,并且尽可能接近goal。思路:dfs暴力枚举,注意可能不止6位。原创 2015-08-16 19:02:54 · 1501 阅读 · 0 评论 -
The New Villa (Uva 321 bfs)
题意:有r个房间,一个人开始在1号房间并且1号房间灯亮着其他熄灭,现在要去r号房间,告诉d对房间之间有门,s个开关,每个房间i内开关控制的不是本房间的灯,而是另外一个房间j的灯,人每次可以开或关自己房间的开关,或移动到亮着的房间,不是亮着的不能进去,问最终到r号房间最少需要几个步骤,输出步骤。到r号房间后r号房间亮着其他熄灭。思路:把r个房间灯的状态用01串表示,1表示亮着,0表示熄灭,人当前在的房间为2,这样初始状态为2000000,终态为0000002,map判重,bfs即可。原创 2015-08-16 09:50:49 · 831 阅读 · 0 评论 -
Ignatius and the Princess I (hdu 1026 优先队列+bfs+输出路径)
题意:给出n*m的地图,求从(0,0)走到(n-1,m-1)最短时间,方格上的数字表示杀怪所要的时间。思路:优先队列+bfs,输出路径的时候用一个path数组记录,path[i][j]=d表示(i,j)位置是由d方向过来的。原创 2015-08-16 19:09:00 · 969 阅读 · 0 评论 -
Colour Hash (Uva 704 双向bfs)
题意:如上图,给出一个初始状态,问在16步之内能否转到终态,输出路径。思路:16太大,像这样知道初态和终态的可以使用双向bfs求解。原创 2015-08-16 19:18:29 · 727 阅读 · 0 评论 -
Seven Puzzle (AOJ 0121 bfs)
题意:给出0~7的序列(2*4),只能0和周围数字交换,问最少交换多少次可以是给出的序列变成0 1 2 3 4 5 6 7思路:先搜一遍把所有答案保存下来。大哭因为一句话位置写错了当时没做出来。。原创 2015-03-22 22:51:26 · 1153 阅读 · 0 评论 -
E. Anya and Cubes (CF #297 (Div. 2) 折半搜索)
题意:给你n个数,k个魔法棒,s为所求的数,然后让你找有多少种方法,能够使的这n个数之和为s,其中一个魔法棒可以使的一个数变成他的阶乘。思路:采用折半搜索,自己太渣。。请看这位大神详解~原创 2015-03-29 11:36:13 · 987 阅读 · 0 评论 -
Codeforces--192.div2.D Biridian Forest bfs
题意:给出n*m的迷宫,T代表树不能走,0代表空地,1~9代表该方格上有的敌人数,从起点S出发到终点,求一路上必须得干掉的敌人的最小值。思路:我们可以这样想,如果某个方格上的敌人能够与我相遇,那就相当于这些敌人到终点去等我,这是等价的,如果我到终点了有些敌人还没到终点那敌人就不可能追上我了,所以我走最短的路线就可以了,如果敌人走的步数小于我的步数就加上敌人数量。我用的一个s数组,bfs过程中遇到数字就把改点的步数存在s数组中,bfs完了以后遍历全图若s[i][j]<我的最小步数,就加上该点的敌人数。bfs原创 2014-11-04 20:15:17 · 1107 阅读 · 0 评论 -
Dungeon Master poj 2251 dfs
题意:给你一个三维迷宫,从起点到终点求最短步数。思路:和二维的迷宫问题差不多,稍微改成三维的就行了。原创 2014-10-12 14:34:00 · 1501 阅读 · 0 评论 -
Channel Allocation (poj 1129 dfs)
题意:给你一个n,代表电台的数量。电台的编号是从A到Z。然后给你他们之间的邻接关系,让你求出最小需要的频率数。要求任意两个相邻的电台之间不允许用同一频率。思路:数据不大,最多26,dfs暴力,用邻接表存图,color[x]=i表示x号电台使用i频率。原创 2014-10-22 21:27:46 · 1206 阅读 · 1 评论 -
Network Saboteur (poj 2531 dfs)
题意:给一个无向图,把它分成两部分,使得连接这两部分边的权和最大。思路:定义一个group数组标记每个点的分组,从0号点dfs直到N,暴搜所有情况求最大值。原创 2014-10-21 21:23:38 · 943 阅读 · 0 评论 -
Finding crosses hdu 4414 dfs
题意:找图中十字架的个数,十字架必须独立,对称才算,不能与其他’#‘相连。原创 2014-09-23 21:18:03 · 839 阅读 · 0 评论 -
Wang Xifeng's Little Plot (poj 5024 DFS)
题意:求两点使它们的距离最大,只能转一次弯,并且是90度。思路:遍历全图,找最大值,注意dir数组按照一个圆写,这样好控制方向,搜的时候有三个方向:直走,左转90度,右转90度。另外注意剪枝,不然会超时。原创 2014-09-20 20:25:29 · 1041 阅读 · 1 评论 -
数独 Sudoku poj 2676
数度问题,暴搜求解原创 2014-09-23 10:50:14 · 1118 阅读 · 0 评论 -
poj 3414 Pots BFS
PotsTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9938 Accepted: 4168 Special JudgeDescriptionYou are given two pots, having the volume of A and B原创 2014-08-08 16:10:05 · 778 阅读 · 1 评论 -
A Knight's Journey (poj 2488 DFS)
给你一个p*q的国际象棋棋盘,问马从任意一点出发能否每个点只经过一次把所有的点都遍历完。其实只需要从最左上角开始走就行了,因为如果每个点都能走到起点在哪就无所谓了。另外要按字典序输出,则dir数组是一定的。最后注意国际象棋行为数字列为字母,开始不小心搞反了一直不对。。。。原创 2014-09-18 19:40:05 · 862 阅读 · 0 评论 -
Curling 2.0 (poj 3009 dfs)
题意:给定一个w*h的地图,0代表空地,1代表障碍,2代表起点,3代表终点,问从起点最少要扔几次才能使冰壶到达终点;冰壶扔出去之后只能沿着一个方向前进,若滑出边界则fail,若撞到障碍则冰壶在与障碍相邻的位置停下且障碍消失,冰壶在一点向某一个方向扔出去的时候,该方向上紧邻的一格不能是障碍。若最小总次数不超过10则输出,否则输出-1.原创 2014-10-19 21:36:57 · 874 阅读 · 1 评论 -
poj 3026 Borg Maze bfs+最小生成树
题意:在N*M的迷宫上,从S点出发找一条最短的路径走遍所有的A,且在S和A处可以分成多组同时走,可以分叉,这样就先求出所有点两两之间的距离,找到一棵最小生成树,树上所有边的和就是要求的最小值。原创 2014-10-18 12:32:55 · 1160 阅读 · 0 评论 -
Find The Multiple (poj 1426 bfs)
题意:输入整数n,求一个只由1和0两个数字组成的十进制整数m,m是整数n(200以内)的k倍,且要求k最小。思路:运用同余定理+bfs,看这位大神这一题的同余定理。原创 2014-10-20 22:43:15 · 793 阅读 · 0 评论 -
D. Drazil and Tiles (CF 515D bfs搜索)
题意:n*m的图,‘.’表示空格,现在要用1*2的砖去把它填满,可以横向(‘<’,'>')填和竖向('^','v')填。找出基本元素块,(i,j)和它相邻的四个点看成一个基本元素块,如果(i,j)周围的‘.’只有一个那么这个(i,j)处的填法就是固定的,填完(i,j)后看它周围是否有其他点因为填完(i,j)后填法变的唯一,有就入队, 就这样一步一步找到固定填法的(i,j),更新周围的点。原创 2015-03-28 16:31:24 · 678 阅读 · 0 评论 -
D. Block Tower (CF 327D 搜索)
题意:在‘-’处建房子,蓝色的可容纳100人,红色的可容纳200人(建红色房子时旁边必须要有蓝色房子),要求输出人口最大的方案,任一一解即可。思路:现在空地上全部建蓝色的,找出独立块(被‘#’隔断互不联通),一个独立块只需要建一个蓝色房子那么其他的都可以摧毁再建红色房子。原创 2015-03-09 20:40:29 · 671 阅读 · 0 评论 -
D. Arthur and Walls (CF 525 D 搜索bfs)
题意:给出一个n*m的地图,由‘*’和‘.’号组成,现在要将一些'.'改成'*'号使得所有局部的'.'号都能组成一个矩形,要保证修改的次数最少,最后输出改变后的矩形。思路:最开始的思路是搜联通块,将联通块里面的'*'全部改成‘.’,但是题目范围较大,结果超时了。然后看到别人的是找一个基本元素块,n*m的矩形由这些元素块组成。发现:如果在一个2*2的方格内只有一个是‘*’那么就必须要将这个‘*’改成‘.’,这样bfs搜一遍即可。原创 2015-03-28 10:24:35 · 1237 阅读 · 0 评论 -
River Hopscotch (poj 3258 二分搜索)
题意:一条河长度为 L,河两岸的距离就是L。河中有n块石头,每块石头到S都有唯一的距离。问现在要移除河中间m块石头,每次移除的是与当前最短距离相关联的石头,要求移除m块石头后,使得那时的最短距离尽可能大,输出那个最短距离。原创 2015-03-09 17:26:15 · 544 阅读 · 0 评论