博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
栈与队列....
阅读量:5827 次
发布时间:2019-06-18

本文共 1314 字,大约阅读时间需要 4 分钟。

ExpandedBlockStart.gif
View  Code 
#include <iostream>
#include <cstring>
#include <queue>
using 
namespace std;
 
int x2,y2; 
int ans = 
0;
int dre_x[
5] = {
0,-
1,
1,
0,
0}; 
int dre_y[
5] = {
0,
0,
0,-
1,
1};
int map[
12][
12];
int visit[
12][
12];
class Point
{
public:
    
int x;
    
int y;
    Point(
int x,
int y)
    {
        
this->x = x;
        
this->y = y;
    }
    ~Point ()
    {
    }
private:
protected:
};
queue<Point> que;
void BFS()
{
    
while (!que.empty())
    {
        
if (que.front().x == x2 && que.front().y == y2)
        {
            ans = 
1;
            
return;
        }
        
for (
int i=
1;i<=
4;i++)
        {
            
if (visit[que.front().x+dre_x[i]][que.front().y+dre_y[i]] == 
0 && map[que.front().x+dre_x[i]][que.front().y+dre_y[i]] == 
1)
            {
                visit[que.front().x+dre_x[i]][que.front().y+dre_y[i]] = 
1;
                que.push(Point(que.front().x+dre_x[i],que.front().y+dre_y[i]));
            }
        }
        que.pop();
    }
}
void DFS(
int  x,
int y)
{
    
if (x == x2 && y == y2)
    {
        ans =  
1;
        
return;
    }
    
for (
int i=
1;i<=
4;i++)
    {
        
if (visit[x+dre_x[i]][y+dre_y[i]] == 
0 && map[x+dre_x[i]][y+dre_y[i]] == 
1)
        {
            visit[x+dre_x[i]][y+dre_y[i]] = 
1;
            DFS(x+dre_x[i],y+dre_y[i]);
        }
    }
}
int main()
{
    memset(map,
0,
sizeof(map));
    memset(visit,
0,
sizeof(visit));
    
for (
int i=
1;i<=
10;i++)
        
for (
int j=
1;j<=
10;j++)
        {
            cin>>map[j][i];
        }
    cin>>x2>>y2;
    
//
DFS(1,1);
    que.push(Point(
1,
1));
    BFS();
    Point p(
1,
1);
    cout<<ans<<endl;

转载于:https://www.cnblogs.com/modiz/archive/2013/03/16/2963661.html

你可能感兴趣的文章
iOS 9.0之后NSString encode方法替换
查看>>
解决 ThinkPHP5 无法接收 客户端 Post 传递的 Json 参数
查看>>
ASMFD (ASM Filter Driver) Support on OS Platforms (Certification Matrix). (文档 ID 2034681.1)
查看>>
CRM Transaction处理中的权限控制
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>
统计文件里面某个字符串出现次数
查看>>
文件权限
查看>>
busybox里的僵尸进程为何那么多
查看>>
python debug
查看>>
java 连接数据库之一个完整的函数
查看>>
mysql脚本
查看>>
OllyDBG 入门系列教学--让你瞬间成为破解高手
查看>>
Dubbo点滴(2)之集群容错
查看>>
cengos6.3安装Intel Advanced-N 6205无线驱动
查看>>
检测不到兼容的键盘驱动程序
查看>>
简单的分页存储过程,Json格式日期转换为一般日期
查看>>
jquery 选择器
查看>>
转://Oracle not in查不到应有的结果(NULL、IN、EXISTS详解)
查看>>
listbox用法
查看>>