
DFS and BFS
阿聊
愿我千帆过尽,归来仍是少年
展开
-
深搜
73 88 1 02 7 4 44 5 2 6 5(图1)图1给出了一个数字三角形。从指定的一个数往下走,可以走到下一层上和它最近的左边的那个数或者右边的那个数。任务:给定数字三角形中的一个位置,求从它开始所能到达的最大数。输入输入数据包含多组测试数据,对于每组测试数据:输入的第一行是一个整数N (0原创 2017-11-16 18:13:01 · 332 阅读 · 0 评论 -
poj1164 The Castle
有一个n*m的城堡,由一个个小房间组成,每个房间由一个零和四面的墙组成,每个房间都有一个价值,价值的计算方式是:west_walls价值为1,north_walls价值为2,east_walls价值为4,south_walls价值为8,walls的价值加在一起就是这个房间的价值。先输入n,m,随后输入n*m的数字矩阵。问castle有几个房间,最大的房间多大?这道题的关键在于,深搜的时...原创 2018-11-30 18:00:26 · 167 阅读 · 0 评论 -
n皇后问题
#include<stdio.h>#include<iostream>using namespace std;int n,ans;int vis[10];//vis[i]:第i行有一个皇后在vis[i]列int check(int r,int c){ for(int i=1;i<=r;i++) { if(vis[i]==c...原创 2018-11-25 12:23:09 · 167 阅读 · 0 评论 -
hdu 2102 A计划
题目 中文题,题意不赘述。遇到上下两层都是# 的,就把上下两层的这个位置都弄成墙还有遇到 一层是#一层是墙的,也直接把俩都弄城墙就行,省的要判断他撞死。mp[][][]开个三维的,记录两层楼#include<iostream>#include <cstdio>#include<queue>#include <cstring>...原创 2018-10-25 19:26:40 · 108 阅读 · 0 评论 -
poj 1321 棋盘问题
题目 中文题目,题意不在赘述,思路代码中。#include <iostream>#include <cstring>#include <cstdio>using namespace std;char mp[10][10];int vis[10];int cnt = 0;int n,k;/** 采用的是按行递增的顺序来搜索的, ...原创 2018-10-25 17:02:59 · 101 阅读 · 0 评论 -
poj 1753 2965
这两道题类似,前者翻转上下左右相邻的棋子,使得棋子同为黑或者同为白。后者翻转同行同列的所有开关,使得开关全被打开。poj 1753 题意:有一4x4棋盘,上面有16枚双面棋子(一面为黑,一面为白), 当翻动一只棋子时,该棋子上下左右相邻的棋子也会同时翻面。以b代表黑面,w代表白面,给出一个棋盘状态, 问从该棋盘状态开始,使棋盘变成全黑或全白,至少需要翻转多少步#inc...原创 2018-10-22 18:17:38 · 182 阅读 · 0 评论 -
poj 3009 Curling 2.0
题目#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int Max = 0x3f3f3f3f;int ei,ej;int steps,mi;int dir[4][2]= {{-1,0},{1,0},{0,-1},{0,1}};i...原创 2018-10-18 15:29:01 · 109 阅读 · 0 评论 -
poj 3278 Catch That Cow
题目题意:输入n,m,求由n到m需要最少步数,n只能加一减一或者乘二。每一种可能读入队尾,然后再从队首一个一个的遍历(0 ≤ n,m≤ 100,000) ,Max 需要取到2*100,000#include <iostream>#include <cstdio>#include <cstring>#include <queue>...原创 2018-10-15 14:32:48 · 116 阅读 · 0 评论 -
poj 2488 A Knight's Journey
题目题意:给出一个国际棋盘的大小 p*q,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径。因为要求字典序输出最小,所以按下图是搜索的次序搜素出来的就是最小的。初始方向数组:int f[2][8]={{-2,-2,-1,-1, 1,1, 2,2}, {-1, 1,-2, 2,-2,2,-1,1}}; #include <iostream>...原创 2018-10-15 12:53:02 · 135 阅读 · 0 评论 -
hdu 1180 诡异的楼梯
hdu 1180 诡异的楼梯#include<cstdio>#include <iostream>using namespace std;#include<algorithm>#include <queue>#include <cstring>using namespace std;const int N = 50;...原创 2018-09-27 14:02:18 · 120 阅读 · 0 评论 -
hihocoder 二分·二分答案【二分搜索,最大化最小值】 (bfs)
题目这道题做了几个小时了都没有做出来,首先是题意搞了半天都没有弄懂,难道真的是因为我不打游戏所以连题都读不懂了?反正今天是弄不懂了,过几天再来看看。。。题意:一个人从1点出发到T点去打boss,这个人有两个属性值,防御值和战斗值,这两个值成反比,为了打赢boss我们要使战斗值最大,于是乎防御值就要最低,但是也不能太低,于是乎这个界限在哪,这就是我们要求的。每条路上都有一个索敌值,防御值...原创 2018-07-19 20:31:49 · 337 阅读 · 0 评论 -
hdu 1010 Tempter of the Bone
题目题意:根据地图,'S'为开始位置,'D'为门的位置,' . '为空地,'X'为墙,不能经过,问:在指定的时间,是否能到达'门'的位置.注意:路不可以重复经过,时间也要刚好是 t ,不能少.思路:用DFS,不能用BFS,因为BFS求的是最短路径,而此题的路径不一定最短.剪枝是关键,奇偶剪枝.奇偶剪枝原理:要理解奇偶剪枝,先了解一下曼哈顿距离,从一个点到达另外一个点的最...原创 2018-07-18 16:11:54 · 111 阅读 · 0 评论 -
hdu 1045 Fire Net
题目拿到这道题刚开始就觉得是bfs,其实自己一直不太能清晰的分析出一个题用的是bfs,还是dfs。尽管他们的原理我都大概知道,但可能就是 因为我只是大概知道吧。。总是觉得dfs和bfs这两个东西是可以相互使用的。下面对dsf和bfs做一个总结吧:DFS在于从一个初始状态出发,一直转移状态直到搜到目标或搜到状态无法进行转移为止,而BFS在于一层一层地扩展状态,这样首先找到的目标便一定是用...原创 2018-07-23 10:14:38 · 195 阅读 · 0 评论 -
poj 3414 Pots
题目:有二个水壶,对水壶有三种操作:1)FILL(i),将i水壶的水填满;2)DROP(i),将水壶i中的水全部倒掉;3)POUR(i,j)将水壶i中的水倒到水壶j中,若水壶 j 满了,则 i 剩下的就不倒了,问进行多少步操作,并且怎么操作,输出操作的步骤,两个水壶中的水可以达到C这个水量。如果不可能则输出impossible。初始时两个水壶是空的,没有水。两个水壶三种操作,所...原创 2019-01-27 21:11:23 · 167 阅读 · 0 评论