搜索
文章平均质量分 72
Lazines_by
好吧,我要工作了
展开
-
hdu 5094 状压+BFS
题意:给出k扇门,每扇门有一个编号,要开这扇门需要提前拥有对应编号的钥匙。相邻的两个格子存在墙,不能通过。然后要求从(1,1)到(n,m)的最少的时间。思路:用状态表示获得的钥匙的情况,经过门的时候判断是否拥有这个编号的钥匙。用0表示相邻两个格子之间能通过,1表示有墙,大于2的表示的是门的编号。PS:注意每个格子不止有一种钥匙。不能用钥匙表示标记,因为种类数相同的话情况不同原创 2017-07-28 17:39:53 · 220 阅读 · 0 评论 -
D.Lakes in Berland(DFS)
Lakes in Berland题意:三个参数:n,m,k,表示n * m 的矩形,‘*’表示的是土地,‘.’表示的是水,如果水四面都被土包围,那就是湖,否则就是海;求:将图中的湖变得剩下K个之后的图,输出,并求出将水变成图的最小的个数;思路:先将海筛选掉,就是判断边界上有没有‘.’,然后dfs标记一下;之后再对图进行湖的记录,用一个结构体,记录湖的其中的一个点 和 湖中‘.’的个原创 2016-10-06 00:26:18 · 358 阅读 · 0 评论 -
搜索剪枝DFS
Tempter of the Bone hdu1010题意:给一个图,找出一个看能否能在t的时间内从S到达D点;思路:BFS肯定不行,因为bfs找到的是最短时间的路径,无法对在t时间点到达D点进行判断; 于是才想到了DFS,这个能把所有的情况遍历一遍的算法,虽然图的长宽只有7,但是总是超时,这次终于体会到了剪枝的博大精深,因为虽然说长宽只有7,但是用dfs走原创 2016-11-30 19:34:49 · 272 阅读 · 0 评论 -
uva 11624(BFS)
UVA 11624题意:图中头几堆火,火是按四周蔓延的,然后判断J只能走‘.’,而且要在火蔓延之前才能通过,然后如果J在图的边界,那么就逃出了;思路:对火堆进行BFS,得到火到达各个'.'的最短的时间,然后对J进行BFS,要在火到达之前进行通过;注意:因为BFS的性质,先到达的就是最短的时间,然后对于没用火到达的地方,不用判断火的时间,防止因为初始化times数组使得时间一样引原创 2017-02-21 17:46:09 · 290 阅读 · 0 评论 -
搜索题解
Prime Path 题意: 求一个素数 a 变换到 一个素数b 的最小次数变换规则为:变换数的一个数位,然后使得变换后的数为素数;思路: 这个能想到用bfs真是神奇,先把一个数的数位用一个数组记录,然后对其中的一个数位进行更改,然后判断更改后的数是否为素数,是的话入队; 因为一次只能对一个数位进行操作,所以每次进行更改位上的数的时候记录一下,之后原创 2017-03-02 19:54:03 · 204 阅读 · 0 评论 -
Fxx and game
2016年10月29日,bc第89场;Fxx and game问题描述青年理论计算机科学家Fxx给的学生设计了一款数字游戏。一开始你将会得到一个数\:XX,每次游戏将给定两个参数\:k,tk,t, 任意时刻你可以对你的数执行下面两个步骤之一:1.\:X = X - i(1 1.X=X−i(1=i=t)。2.\:2.若\:X\:X为\:k\:k的倍数,X = X原创 2016-10-29 20:51:55 · 2393 阅读 · 0 评论 -
Depth First Search (DFS)入门
Oil DepositsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 15216 Accepted: 8261DescriptionThe GeoSurvComp geologic survey company is responsible for dete原创 2016-04-05 20:23:32 · 444 阅读 · 0 评论 -
利用DFS拆分数系列;Depth First Search
利用dfs的递归回溯的功能:分拆素数和 题意:对于任意大于1的自然数n,总是可以拆分成若干个小于n的自然数之和。现请你编写程序求出n的所有拆分。输入输入文件共一行,包含一个自然数,即要拆分的自然数n(1≤n≤20)。输出输出文件有若干行,每行包含一个等式,即代表一种可行的拆分(格式与顺序参见样例)。样例输入5样例输出5=1+1+1+1+15=1+原创 2016-08-12 11:58:57 · 548 阅读 · 0 评论 -
Breadth First Search (BFS)入门
BFS思想:从初始结点开始,应用算符生成第一层结点,检查目标结点是否在这些后继结点中,若没有,再用产生式规则将所有第一层的结点逐一扩展,得到第二层结点,并逐一检查第二层结点中是否包含目标结点。若没有,再用算符逐一扩展第二层所有结点……,如此依次扩展,直到发现目标结点为止 。BFS就是对一个点的所有可以走的情况同时访问,一个层次一个层次地访问,所以称为宽度优先搜索(Breadth First原创 2016-08-13 09:58:14 · 1330 阅读 · 0 评论 -
hdu 1043(搜索 + 康拓展开hash)
首先搜索大家都会,然后就是对于每一种状态进行判断是否之前走过了,这里就要用到hash,然后问题就转变为如何对这个3 ×3的方格进行hash了,我们都知道我们把x当成9的话,方程的数为1 ~ 9,那么我们就能用10进制来唯一表示每一种状态,但是我们会发现这样表示出来的数太大了,所以不采用这种hash方式。然后就学了康拓展开:0!1!2!……9!表示每一位权值对于一个排列,看这个数后边的有多少原创 2017-10-26 10:46:16 · 229 阅读 · 0 评论