
~~~~~~~搜索~~~~~~~
Dunyb
坚毅
展开
-
POJ - 1321
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n...原创 2018-08-22 10:16:42 · 221 阅读 · 0 评论 -
HDU 1495(非常可乐)
题目链接:点击进入思路: 要求最短的操作此数当然就往BFS上靠,然后我们需要读懂题,3个杯子互相倒,6种情况,然后如果杯子大小相同 那么只需要一次操作,如果大小不同,那就是当大的那个杯子装满1/2可乐,并且 可乐瓶中还有1/2时退出AC:#include<iostream>#include<cstring>#include<queue>#...原创 2019-04-09 10:54:06 · 422 阅读 · 0 评论 -
UVA11624 Fire! (BFS)
题目链接:洛谷:或者这里:Vjudge更方便题目大意:火在蔓延,人在走。火会蔓延,不会熄灭,我们可以确定某个点着火的时间(广搜)。对于J来说,要是他走到某点的时间比火蔓延到该点的时间要短,那么他走到该点的时候,火还没蔓延过来,他就可以走到该点,否则,不能进入该点。思路:WA了一页开始是因为 不知道火可以有多把,然后之后的一页就不知道为啥WA,调调竟然过了,1)先把所有的火跑一遍图,然后...原创 2019-04-11 22:50:23 · 290 阅读 · 0 评论 -
FZU 2150(优化BFS)
题目链接:戳此进入思路:数据范围比较小,每次进两个点BFS,搜完后判断一下,是否还有没有烧的草,如果有就标记。优化思路:纯暴力会有点重复,我们只需要保证这两个点如果搜索过就跳过。优化AC :时间差一半#include<iostream>#include<cstring>#include<string.h>#include<queue...原创 2019-04-11 09:43:52 · 559 阅读 · 4 评论 -
HDU 2612
点此进入题目:题目链接思路:开始想用 双向BFS 但是 写着写着不会了,又改用单向BFS。跑两次图,然后找到最小值即可AC代码:#include<iostream>#include<cstring>#include<string.h>#include<queue>#include<stack>#include<...原创 2019-04-10 20:15:09 · 294 阅读 · 0 评论 -
POJ 3984
题目链接:POJ-3984思路:需要保存路径,所以开个结构体数组 BFSAC代码#include <iostream>#include <algorithm>#include<math.h>#include<queue>#include<cstring>using namespace std;typedef lo...原创 2019-04-05 17:36:21 · 375 阅读 · 0 评论 -
POJ 3126(BFS)
题目链接:POJ- 3126思路:先打个素数表,每次只能变一个数字,然后变完之后必须素数,求最少的改变次数。AC代码:#include <iostream>#include <algorithm>#include<math.h>#include<queue>#include<cstring>using nam...原创 2019-04-05 16:38:06 · 228 阅读 · 0 评论 -
POJ-1979(BFS)
题目的".'' - 黑色瓷砖'#' - 红色瓷砖'@' - 黑色瓷砖上的男人(在数据集中只显示一次)这间长方形客房铺有方形瓷砖。每个瓷砖都是红色或黑色。一个男人站在黑色的瓷砖上。从瓷砖中,他可以移动到四个相邻瓷砖中的一个。但是他不能在红色瓷砖上移动,他只能在黑色瓷砖上移动。编写一个程序,通过重复上述动作来计算他可以达到的黑色瓷砖的数量。就是计算他能 到达“.”的数量,包括最...原创 2018-08-23 09:07:48 · 224 阅读 · 0 评论 -
NOI题库答案 2.2基本算法之递归和自调用函数
1696:逆波兰表达式总时间限制:1000ms内存限制:65536kB描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。输入...原创 2019-01-23 11:26:04 · 2992 阅读 · 0 评论 -
POJ-3126(BFS)
这一题就是把1000从10000的质数都找出来,每次只改一位数字然后改变后的必须还是素数,找出从这个数到另一个数最少的步数。你说这人是不是有病,门牌号非要是素数,我真服,真给小明一样。然后我的思路是,先打一个素数表从1000到10000所有的素数都存在一个数组里,然后用广搜遍历,每次改变一位数,加入队列然后,然后用另一个数组存步数,广搜的好处就是,只要找到终点就是最短的路径。可惜我实现...原创 2018-08-23 08:55:28 · 150 阅读 · 0 评论 -
HDU - 1241 (DFS)(BFS)
题目链接:HDU 1241思路: 用BFS DFS。AC代码:DFS#include<iostream>#include<cstring>#include<string.h>#include<queue>#include<stack>#include<vector>using namespa...原创 2018-08-23 08:48:47 · 291 阅读 · 0 评论 -
POJ 1426
题目 :POJ 1426输入一个小于n的数之后给一个输出一个十进制只有10组成并且能整除n。我用的BFS 从从1开始,然后除以n,然后遍历10,11,实质就是1*10的两个再遍历(101,100),(110,111),。。。。。。。每次遍历的数都是2,这就是个2叉树,下面是代码 BFS:#include<iostream>#include<...原创 2018-08-22 10:23:23 · 314 阅读 · 3 评论 -
POJ 2251,3D迷宫。
这种迷宫题我认为用BFS比较快的,终于对BFS有理解更深了一点,这道题,BFS+队列,首先我们需要先建一个迷宫,然后开始从起点遍历,遍历到终点,输出时间(树根),这种3维的遍历时就是6个方向,上下左右前后,然后我们需要一个结构体来标记这个人的位置,然后开始遍历6个位置,遍过的位置进行标记,不需要第二次遍历,我们先将人的开始的位置压入队列,弹出,压入队列人旁的6个位置,依次遍历,然后更新...原创 2018-08-22 10:20:07 · 204 阅读 · 0 评论 -
POJ 3278,抓牛问题(BFS)
题目链接:戳此进入这道题如果用DFS就是一路走到头没法向回拐,所以不能用DFS,我们用BFS+队列,广搜一下,第一先确定人的位置,之后确定牛的位置,如果人在牛前,人就只能后退,那差几步就是几分钟。第二种是牛在人前面,然后人开始找牛,三种方法,步数+1,步数-1,步数*2,然后开始遍历,先把人开始的位置压入队列,遍历下面3个地方,判断是否找到,判断是否越界,然后把队列头依次拿出,每次...原创 2018-08-22 10:18:40 · 2100 阅读 · 1 评论 -
POJ 3414 (BFS)
点此进入题目链接:POJ 3414思路 :这题给 给这个 题目一样 HDU - 1495非常可乐一样 只不过需要记录路径AC:代码#include<iostream>#include<cstring>#include<queue>#include<stack>#include<math.h>#include&...原创 2019-04-09 12:57:39 · 336 阅读 · 0 评论