是一个图论的基础搜索题~

没什么好说的就是搜索就好 主要是别把 代码写的太屎,错了不好找

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
int sx,sy,ex,ey;
struct info
{
int x,y;
char ko;
int qian;
};
info que[40];
bool flag[10][10];
int n,m;
bool vi[10][10][4];
int d[4][2]={-1,0,1,0, 0,-1, 0, 1};
char dd[5]={"WENS"};
void print(int p)
{
if(p!=0) print(que[p].qian);
if(p!=0)printf("%c",que[p].ko);
}
bool jude(int x,int y)
{
return x>=1&&y>=1&&x<=6&&y<=6&&flag[x][y]==0;
}
void solve()
{
int h=0,r=1;
int x,y,x0,y0;
que[0].x=sx,que[0].y=sy;
flag[sx][sy]=1;
while(h!=r)
{
x=que[h].x;
y=que[h].y;
h++;
for(int i=0;i<4;i++)
{
if(vi[x][y][i])
{
x0=x+d[i][0];
y0=y+d[i][1];
if(jude(x0,y0))
{
flag[x0][y0]=1;
que[r].x=x0;
que[r].y=y0;
que[r].qian=h-1;
que[r].ko=dd[i];
if(x0==ex&&y0==ey) {print(r);return ;}
r++;
}
}
}
}
}
int main()
{
int a,b,c,d;
while(~scanf("%d%d",&sx,&sy))
{
if(sx==0&&sy==0) break;
memset(vi,1,sizeof(vi));
memset(flag,0,sizeof(flag));
scanf("%d%d",&ex,&ey);
for(int i=0;i<3;i++)
{
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a==c)
{
for(int i=min(b,d)+1;i<=max(b,d);i++)
vi[a][i][1]=0,vi[a+1][i][0]=0;
}
else if(b==d)
{
for(int i=min(a,c)+1;i<=max(a,c);i++)
vi[i][b][3]=0,vi[i][b+1][2]=0;
}
}
solve();printf("\n");
}
return 0;
}

  

poj 2935 Basic Wall Maze的更多相关文章

  1. HDU 1484 Basic wall maze (dfs + 记忆)

    Basic wall maze Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. poj-2935 BFS Basic Wall Maze

    Basic Wall Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3384   Accepted: 1525   ...

  3. Basic Wall Maze

    poj2935:http://poj.org/problem?id=2935 题意:在6*6的格子中,有一些,如果两个格子之间有墙的话,就不能直接相通,问最少要经过几步才能从起点走到终点.并且输出路径 ...

  4. 【HDOJ】1484 Basic wall maze

    BFS. /* 1484 */ #include <iostream> #include <queue> #include <string> #include &l ...

  5. 【POJ 3026】Borg Maze

    id=3026">[POJ 3026]Borg Maze 一个考察队搜索alien 这个考察队能够无限切割 问搜索到全部alien所须要的总步数 即求一个无向图 包括全部的点而且总权值 ...

  6. POJ 3026 : Borg Maze(BFS + Prim)

    http://poj.org/problem?id=3026 Borg Maze Time Limit: 1000MS   Memory Limit: 65536K Total Submissions ...

  7. (POJ 3026) Borg Maze 最小生成树+bfs

    题目链接:http://poj.org/problem?id=3026. Description The Borg is an immensely powerful race of enhanced ...

  8. 【POJ】1113 Wall(凸包)

    http://poj.org/problem?id=1113 答案是凸包周长+半径为l的圆的周长... 证明?这是个坑.. #include <cstdio> #include <c ...

  9. POJ 1113:Wall(凸包)

    http://poj.org/problem?id=1113 Wall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 346 ...

随机推荐

  1. 上mongodb创建一些吸取的经验教训指数

    想来接触mongodb它已经快一年了,对于其指数已经积累了很多的经验,知识,以这个夜黑风高的优势,放mongodb总结一番吧. 一,索引介绍 mongodb具有两类索引,分别为单键索引和复合索引. 1 ...

  2. GitLab 5.3 升级注意事项

    最主要就是需要更新的Git.我的Ubuntu12.04通过apt-get install安装的git版本过低. 所以只能通过源代码安装. 参考下面的步骤: wget git-core.googleco ...

  3. CheckBox和RadioButton以及RadioGroup

    CheckBox:复选框 有两种状态 选中状态(true),未选状态(false) 属性 android:checked= "false"(表示该复选框未被选中) RadioGro ...

  4. VSTO学习笔记(五)批量编辑Excel 2010 x64

    原文:VSTO学习笔记(五)批量编辑Excel 2010 x64 近期因为工作的需要,经常要批量处理大量的Excel文件,如果纯手工一个个修改,非常的麻烦,于是写了这么一个帮助类,希望能对你有所帮助. ...

  5. 【WinRT】【译】【加工】在 XAML 中制作圆形图片

    原文:[WinRT][译][加工]在 XAML 中制作圆形图片 原文地址:http://timheuer.com/blog/archive/2015/05/06/making-circular-ima ...

  6. Android 调用谷歌语音识别

    調用谷歌语音识别其实很简单,直接利用 intent 跳转到手机里面的谷歌搜索 代码也很简单,直接调用方法 startVoiceRecognitionActivity() 如果大家手机里面没有谷歌搜索, ...

  7. asp.net EF6.0中出现未找到具有固定名称“System.Data.SqlClient”的 ADO.NET提供程序的实体框架提供程序解决办法

    出现的错误信息如下所示: 指定的架构无效.错误:  DataModel.ssdl(2,2) : 错误 0152: 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提 ...

  8. RSD和wlwmanifest是什么

    今天小博发现header.php文件里<?php wp_head(); ?>显示有以下的两句代码,因为小博的网站打开速度实在太慢了,换空间怕麻烦,那就只有优化代码了. <link r ...

  9. tar.bz2解压

    bzip2 -d gcc-4.1.0.tar.bz2 tar -xvf gcc-4.1.0.tar 或 tar -xvf *.tar

  10. BGP协议学习总结

    BGP学习总结 BGP是目前使用的唯一的自治系统间的路由协议,它是一种矢量路由协议,基于TCP的179号端口,它采用单播增量更新的方式更新路由,与其他的路由协议不同的是,BGP只要TCP可达,就可以建 ...