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

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

#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. VSC调试.NET Core 应用程序

    VS Code 从零开始开发并调试.NET Core 应用程序 使用VS Code 从零开始开发并调试.NET Core 应用程序,C#调试. 上一篇 使用VS Code开发 调试.NET Core ...

  2. 方案猿身高project联赛,艺术家,相反,养殖场!-------三笔

    已经看到了程序猿在电影中都是非常厉害的人物,硬道理键盘噼里啪啦后,奇妙的事情会发生. 当我报了这个专业,開始认真的写程序,在这个领域学习的时候,却发现非常多干这一行 的都自称"码农" ...

  3. 开玩笑Web它servlet(五岁以下儿童)---- 如何解决servlet线程安全问题

    servlet默认值是安全线的存在,但说白,servlet安全线实际上是一个多线程线程安全问题.因为servlet它正好是一个多线程的安全问题出现. 每次通过浏览器http同意提交请求,将一个实例se ...

  4. Codeforces Round #272 (Div. 1)C(字符串DP)

    C. Dreamoon and Strings time limit per test 1 second memory limit per test 256 megabytes input stand ...

  5. hdu 1542 Atlantis(段树&amp;扫描线&amp;面积和)

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  6. Android设计模式(二)--策略模式

    1.定义: The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them inter ...

  7. 分享3一个博客HTML5模板

    1.材类别:半透明 博客html模板 个人博客 半透明html5博客主题,半透明,博客,博客html模板,个人博客,html5,灰色,半透明html5博客主题是一款适合用于个人博客主题,风格非常不错. ...

  8. hdu2712(贪心)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2712 题意:是求最短的非子串(子串不要求连续)的长度. 分析:把序列划分为尽量多(假设为ans)的含有 ...

  9. 斯坦福ML公开课笔记14——主成分分析

    上一篇笔记中,介绍了因子分析模型,因子分析模型使用d维子空间的隐含变量z来拟合训练数据,所以实际上因子分析模型是一种数据降维的方法,它基于一个概率模型,使用EM算法来预计參数. 本篇主要介绍PCA(P ...

  10. WIP jobs available to MRP

    1. Supply 2. Demand 版权声明:本文博客原创文章,博客,未经同意,不得转载.