题目大意:

  类似于连连看,问从起点到终点最少需要几条线段。

  规则:

    1、允许出界。

    2、空格的地方才能走。

分析:

  题目做下来发现没有卡时间,所以主要还是靠思路。也就是说不用考虑离线算法。直接以每个起点开始搜。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std; const int N=;
int r,c,sx,sy,ex,ey,ans;
int vis[N][N],Map[N][N];
int dx[]={,-,,};
int dy[]={,,,-};
bool isin(int x,int y)
{
return x>=&&x<=r+&&y>=&&y<=c+;
}
struct node
{
int x,y,s;
};
node a,b;
queue<node> q;
void BFS()
{
int i,j,k,x,y;
while(!q.empty())
{
a=q.front(); q.pop();
for(k=;k<;k++)
{
x=a.x,y=a.y;
while()
{
x+=dx[k]; y+=dy[k];
if(!isin(x,y)) break;
if(x==ex&&y==ey){ans=a.s;return ;}
if(!vis[x][y])
{
b.x=x; b.y=y;b.s=a.s+;
q.push(b);
vis[x][y]=;
}
else break;
}
}
}
}
int main()
{
//freopen("test.txt","r",stdin);
int cas=,t;
while(scanf("%d%d",&c,&r)!=EOF&&c)
{
int i,j;
char ch[];
memset(Map,,sizeof(Map));
gets(ch);
for(i=;i<=r;i++)
{
gets(ch);
for(j=;j<c;j++)
if(ch[j]=='X') Map[i][j+]=;
}
printf("Board #%d:\n",++cas);
t=;
while(scanf("%d%d%d%d",&sy,&sx,&ey,&ex)!=EOF&&sy)
{
for(i=;i<=r+;i++)
for(j=;j<=c+;j++)
vis[i][j]=Map[i][j];
while(!q.empty()) q.pop();
a.x=sx,a.y=sy,a.s=;
q.push(a);
ans=-;
BFS();
printf("Pair %d: ",++t);
if(ans==-) printf("impossible.\n");
else printf("%d segments.\n",ans);
}
printf("\n");
}
return ;
}

最新文章

  1. 【Win10 应用开发】使用“实时可视化树”工具查看应用界面元素
  2. 关于Maven项目
  3. UliPad 初体验----python 开发利器
  4. 较多java书籍的网站 tools138.com
  5. Java获取真实的IP地址--转载
  6. latex 批量注释
  7. Python学习笔记 (3) :列表、元组的操作
  8. 如何查看.Net源代码vs版本号以及C#项目中各文件的含义
  9. VTK中国文字显示和简单的医疗图像浏览软件
  10. SQL_Server 学习笔记(一)
  11. python selectsort
  12. 详解OJ(Online Judge)中PHP代码的提交方法及要点【举例:ZOJ 1001 (A + B Problem)】
  13. SQL Server2008从入门到精通pdf
  14. MySQL关于根据日期查询数据的sql语句
  15. VB6 加密解密字符串
  16. circRNA
  17. topcoder srm 690 div1 -3
  18. linux系统基本排查
  19. 转:如何编译delta3d
  20. sklearn_SVC_支持向量机

热门文章

  1. linux修改mysql表结构
  2. 敏捷开发系列学习总结(5)——这几招搞定团队协同Coding
  3. [bzoj2648/2716]SJY摆棋子_KD-Tree
  4. 可拖动的div——demo
  5. HDU 4542
  6. cppunit 的使用
  7. 深入理解Java和MySQL乱码问题
  8. USB设备驱动之设备初始化(设备枚举)
  9. UVa 10693 - Traffic Volume
  10. EJB是什么鸟东西?