随笔分类 -  ACM - F 搜索

摘要:链接 : "Here!" 思路 : 两遍BFS, 第一次是从 'Y' 搜索, 搜到 '@' 就将其累加到一个数组中, 这里采用将二维坐标点映射成一维的点, 第二次从 'M' 搜索, 搜到 '@' 就将其累加到一个数组中, 最后扫描一遍地图, 将 $ans$ 更新为字符为 '@' 的累加值最小值. 最 阅读全文
posted @ 2017-11-29 20:30 ojnQ 阅读(190) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : BFS一下, 然后记录下每个孩子的父亲用于找到一条路径, 因为 寻找这条路径只能从后向前找, 这符合栈的特点 , 因此在输出路径的时候先把目标节点压入栈中, 然后不断的向前寻找, 最后直接pop出栈中所有的元素即可. 注意 : 不要把局部变量压入栈中, 这样就直接 阅读全文
posted @ 2017-11-29 19:57 ojnQ 阅读(179) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 记录下所有 "?" , 出现的位置, 然后 $DFS$ 一下, 对于每个位置来说都可以填充 $9$ 种数值, 然后对于判断填充是否合法需要三个标记数组来辅助记录. $visR[i][num] = 1, 代表第 i 行num值已经出现过, visC[i][num] 阅读全文
posted @ 2017-11-29 18:05 ojnQ 阅读(277) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 三维的搜索, 只需要注意输入的图$G$, 第一为是 $z$ 即可. 剩下的就是普通的搜索, 只不过多加了一维而已... c++ / File Name: E.cpp Author: Mail: Created Time: 2017年11月26日 星期日 10时51 阅读全文
posted @ 2017-11-27 11:59 ojnQ 阅读(180) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 素数表 + BFS, 对于每个数字来说, 有四个替换位置, 每个替换位置有10种方案(对于最高位只有9种) , 因此直接用 BFS 搜索目标状态即可. 搜索的空间也不大... c++ / File Name: E.cpp Author: Mail: Created 阅读全文
posted @ 2017-11-27 11:56 ojnQ 阅读(155) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 这道题类似 $N$ 皇后, 只不过每一行并不是必须有一个棋子, 所以仍然是枚举每一行 $x$ , 1. 对于下棋的策略来说, 枚举每一列, 检查下棋点是否合法, 如果合法则搜索下一行, 并且标记, 等到搜索下一行的所有状态搜索完成, 取消标记, 进行回溯. 2. 阅读全文
posted @ 2017-11-27 11:41 ojnQ 阅读(164) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 简单的搜索, 直接广搜就ok了. c++ / File Name: E.cpp Author: Mail: Created Time: 2017年11月26日 星期日 10时51分05秒 / include include include include incl 阅读全文
posted @ 2017-11-27 11:32 ojnQ 阅读(152) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 如果直接爆搜的话, 会搜到天荒地老.... QAQ ...., 所以就得利用一些技巧, 因为题目说的是小狗能否在 $T (s)$ 能够恰好到达 $Door$ , 所以可以利用 奇偶剪枝 来 剪掉多余搜索 奇偶剪枝 : 假设只能上下左右移动, 现在起点为 $(sx, 阅读全文
posted @ 2017-11-27 11:23 ojnQ 阅读(158) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 搜索判断连通块个数, 所以 $DFS$ 或则 $BFS$ 都行喽...., 首先记录一下整个地图中所有$Oil$的个数, 然后遍历整个地图, 从油田开始搜索它所能连通多少块其他油田, 只需要把它所连通的油田个数减去, 就ok了 c++ / File Name: E 阅读全文
posted @ 2017-11-27 10:06 ojnQ 阅读(148) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 很简单, 就是一个简单的状态搜索, 对于中间的任意状态 $number$ , 它都有三种转移方式 : 1.$(number 1)$, 2.$(number + 1)$, 3.$(number 2)$, 所以直接 $BFS$ 就好了, 需要注意的是判断一下最大值是否 阅读全文
posted @ 2017-11-27 10:02 ojnQ 阅读(128) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 最经典的DFS问题, 思路搜索每一行 $x$, 看看有那些列能合理放置, $(x, y)$ 如果是合法点则放置, 然后搜索下一行, 如果已经合法放置了 $N$ 个点, 则方案数 $+1$ , 然后回溯 (回溯就是把之前放置的点拿起来, 可以这样理解QAQ吧...) 阅读全文
posted @ 2017-11-27 09:54 ojnQ 阅读(105) 评论(0) 推荐(0)
摘要:链接 : "Here!" 思路 : 状压DP. 开始想直接爆搜, T掉了, 然后就采用了状压DP的方法来做. 定义$f[S]$为集合$S$的最小代价, $dis[i]$则记录第$i$个点的"深度", 所以说边$E{[i, j]}$ 的工程代价就为$dis[i] E{[i, j]}$, 因此可以得到状 阅读全文
posted @ 2017-11-23 10:44 ojnQ 阅读(221) 评论(0) 推荐(0)
摘要:题意: 求从三角形顶端出发到达底部,所能够得到的最大路径和 方法一: 记忆化搜索 / File Name: euler018t2.c Author: WArobot Blog: http://www.cnblogs.com/WArobot/ Created Time: 2017年06月28日 星期三 阅读全文
posted @ 2017-06-28 11:43 ojnQ 阅读(258) 评论(0) 推荐(0)