DFS与BFS
顾名思义,DFS就是一直在一个方向搜索,当这一方向不可以时退回该点,换下一方向; 而BFS一开始就是向四面八方搜索,把符合条件的点存入队列中,当前一个点都搜索完毕时,再从队列顶中取出点,再向四面八方搜索。
HRBUST1143 http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1143
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<queue>
using namespace std;
int m,n,p,q;
int ma[][],vis[][];
int dx[]={,,-,};
int dy[]={,-,,};
int ans;
bool check(int x,int y){
if(x>&&y>&&x<=m&&y<=n&&ma[x][y]<=ma[p][q]&&vis[x][y]==)
return true;
else return false;
}
int dfs(int x,int y)
{
vis[x][y]=;
ans++;
for(int i=;i<;i++){
int sx=x+dx[i];
int sy=y+dy[i];
if(check(sx,sy))
dfs(sx,sy);
} }
int main(){ while(~scanf("%d%d%d%d",&m,&n,&p,&q)){
ans=;
memset(vis,,sizeof(vis));
memset(ma,,sizeof(ma));
for(int i=;i<=m;i++){
for(int j=;j<=n;j++){
cin>>ma[i][j];
}
}dfs(p,q);
cout<<ans<<endl;
}
}
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<queue>
using namespace std;
int shu[][],m,n,p,q,ans;
int mov[][]={{,},{-,},{,},{,-}};
int vis[][];
struct point{
int x;int y;
};
bool check(point a){
if(a.x>&&a.y>&&a.x<=m&&a.y<=n&&vis[a.x][a.y]==&&shu[a.x][a.y]<=shu[p][q]){
return true; }
else return false;
} int bfs(int x,int y){
queue<point>que;
int coun=;
point now,temp;
now.x=x;
now.y=y;
que.push(now);
vis[x][y]=;
while(!que.empty()){
temp=que.front();
que.pop();
for(int k=;k<;k++){
now.x=temp.x+mov[k][];
now.y=temp.y+mov[k][];
if(check(now)){
que.push(now);
vis[now.x][now.y]=;
//cout<<now.x<<" "<<now.y<<endl;
coun++;
}
}
}return coun;
}
int main(){
while(~scanf("%d%d%d%d",&m,&n,&p,&q)){
memset(shu,,sizeof(shu));
for(int i=;i<=m;i++){
for(int j=;j<=n;j++){
cin>>shu[i][j];
}
}
memset(vis,,sizeof(vis)); cout<<bfs(p,q)<<endl;
}
}
上面是我写的代码,输出是对的啊,但是不知道为什么就是不过,若是有大神看见啦希望帮我改一改啊^...^
DFS与BFS的更多相关文章
- Clone Graph leetcode java(DFS and BFS 基础)
题目: Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. ...
- 数据结构(12) -- 图的邻接矩阵的DFS和BFS
//////////////////////////////////////////////////////// //图的邻接矩阵的DFS和BFS ////////////////////////// ...
- 数据结构(11) -- 邻接表存储图的DFS和BFS
/////////////////////////////////////////////////////////////// //图的邻接表表示法以及DFS和BFS //////////////// ...
- 在DFS和BFS中一般情况可以不用vis[][]数组标记
开始学dfs 与bfs 时一直喜欢用vis[][]来标记有没有访问过, 现在我觉得没有必要用vis[][]标记了 看代码 用'#'表示墙,'.'表示道路 if(所有情况都满足){ map[i][j]= ...
- 图论中DFS与BFS的区别、用法、详解…
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
- 图论中DFS与BFS的区别、用法、详解?
DFS与BFS的区别.用法.详解? 写在最前的三点: 1.所谓图的遍历就是按照某种次序访问图的每一顶点一次仅且一次. 2.实现bfs和dfs都需要解决的一个问题就是如何存储图.一般有两种方法:邻接矩阵 ...
- 数据结构基础(21) --DFS与BFS
DFS 从图中某个顶点V0 出发,访问此顶点,然后依次从V0的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和V0有路径相通的顶点都被访问到(使用堆栈). //使用邻接矩阵存储的无向图的深度 ...
- dfs和bfs的区别
详见转载博客:https://www.cnblogs.com/wzl19981116/p/9397203.html 1.dfs(深度优先搜索)是两个搜索中先理解并使用的,其实就是暴力把所有的路径都搜索 ...
- 邻接矩阵实现图的存储,DFS,BFS遍历
图的遍历一般由两者方式:深度优先搜索(DFS),广度优先搜索(BFS),深度优先就是先访问完最深层次的数据元素,而BFS其实就是层次遍历,每一层每一层的遍历. 1.深度优先搜索(DFS) 我一贯习惯有 ...
- 判断图连通的三种方法——dfs,bfs,并查集
Description 如果无向图G每对顶点v和w都有从v到w的路径,那么称无向图G是连通的.现在给定一张无向图,判断它是否是连通的. Input 第一行有2个整数n和m(0 < n,m < ...
随机推荐
- 怎么利用WinPE恢复系统注册表?
我们的电脑总是会遇到各种各样的问题,最好用的方式就是电脑重装,重装系统的方式有很多,光盘安装.硬盘安装.U盘安装等.但是碰到电脑系统瘫痪无法启动,甚至连安全模式也进不了的时候,你的光盘.硬盘就没有用处 ...
- 程序员书单_UML篇
UML基础与Rose建模教程 http://download.csdn.net/detail/shenzhq1980/9076199 UML和模式应用1 Applying UML and Patter ...
- LintCode "Submatrix Sum"
Naive solution is O(n^4). But on 1 certain dimension, naive O(n^2) can be O(n) by this well-known eq ...
- Puppet's Commands 3.7
Puppet's Commands Puppet’s command line interface consists of a single puppet command with many subc ...
- FTP搭建
在桌面上右击“我的电脑”,执行“管理”命令,在“计算机管理”窗口的左窗格中依次展开“系统工具 ”→“本地用户和组”目录,单击选中“用户”选项.在右侧窗格中单击右键,执行“新用户”命令.在 打开的“新用 ...
- DB设计原则(一)字段名定义避免二义性。
字段名定义避免二义性.如:主数据中有库存信息表 KCDDID,KCDDMC.若要在业务表中存储库存地点ID的话,不要定义为KCDD,要定义为KCDDID.这样标明存储的就是ID,而不是名称.同样,单位 ...
- Python处理Excel文档(xlrd, xlwt, xlutils)
简介 xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具.其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.B ...
- 精妙SQL语句收集(转)
SQL语句先前写的时候,很容易把一些特殊的用法忘记,我特此整理了一下SQL语句操作. 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 ...
- Workflow_工作流发送Document和Form链接的实现(案例)
2014-06-01 Created By BaoXinjian
- ylbtech-Unitity-CS:Indexers
ylbtech-Unitity-CS:Indexers 1.A,效果图返回顶部 1.B,源代码返回顶部 1.B.1, // indexer.cs // 参数:indexer.txt using S ...