poj1101 the game 广搜
题目大意:
类似于连连看,问从起点到终点最少需要几条线段。
规则:
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 ;
}
poj1101 the game 广搜的更多相关文章
- HDU--杭电--1195--Open the Lock--深搜--都用双向广搜,弱爆了,看题了没?语文没过关吧?暴力深搜难道我会害羞?
这个题我看了,都是推荐的神马双向广搜,难道这个深搜你们都木有发现?还是特意留个机会给我装逼? Open the Lock Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 5652(二分+广搜)
题目链接:http://acm.hust.edu.cn/vjudge/contest/128683#problem/E 题目大意:给定一只含有0和1的地图,0代表可以走的格子,1代表不能走的格 子.之 ...
- nyoj 613 免费馅饼 广搜
免费馅饼 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...
- poj 3984:迷宫问题(广搜,入门题)
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7635 Accepted: 4474 Description ...
- poj 3278:Catch That Cow(简单一维广搜)
Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 45648 Accepted: 14310 ...
- 双向广搜 POJ 3126 Prime Path
POJ 3126 Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16204 Accepted ...
- 广搜+打表 POJ 1426 Find The Multiple
POJ 1426 Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25734 Ac ...
- 双向广搜 codevs 3060 抓住那头奶牛
codevs 3060 抓住那头奶牛 USACO 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description 农夫约翰被告知一头逃跑奶牛 ...
- 双向广搜+hash+康托展开 codevs 1225 八数码难题
codevs 1225 八数码难题 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Yours和zero在研究A*启 ...
随机推荐
- python 易忘操作整理
>>> l=[1,2,3,4,5] >>> s='$'.join(str(i) for i in l) >>> print(s,end=" ...
- python爬虫数据解析的四种不同选择器Xpath,Beautiful Soup,pyquery,re
这里主要是做一个关于数据爬取以后的数据解析功能的整合,方便查阅,以防混淆 主要讲到的技术有Xpath,BeautifulSoup,PyQuery,re(正则) 首先举出两个作示例的代码,方便后面举例 ...
- 2019字节跳动冬令营day7娱乐赛19题题解
啊没去听讲题,也没发纸质题解,电子版题解也没有 为最后几个unsolve自闭了一段时间才全都A掉 3个队友写的我没看的题通过人数蛮多就不管了 题目地址:https://pan.baidu.com/s/ ...
- CSVHelper在Asp.Net MVC中的使用
1,从数据库读取数据,然后导出CSV文件 [HttpPost] public FileResult ExportCSV() { var apps =....//linq以及EF从数据库查询数据 Mem ...
- fzu 2125
#include<stdio.h> #include<math.h> int total(int x,int m) { int sum=0; while(x>0) { ...
- 怎样跟程序猿谈一场没有Bug的恋爱
<iframe width="580" height="90" align="center,center" id="cpro ...
- 优秀软件project师必备的7大特性
不是每个程序猿都能成为优秀的软件project师. 在过去的6年时间里,我在Ooyala.Quora和now Quip这3个创业公司面试过许很多多挺有发展潜力的"种子选手".他们都 ...
- Xposed获取微信usernamepassword
请关注我的微信公众号 參考文章:Xposed恶意插件 Android 安全专项-Xposed 劫持usernamepassword实践 0x00 我在之前的文章中演示了一下怎样通过Xposed获取us ...
- c++ 11 thread 初试
最新的 c++11标准整合进了 线程支持.以下写一个小程序測试一下. 測试代码: #include <iostream> #include <thread> void hell ...
- OpenCV:Visual Studio 2013 Ultimate中OpenCV 2.4.8 配置
配置环境: 操作系统:Win8.1 64位 IDE平台:Visual Studio 2013 Ultimate 一.准备OpenCV 2.4.8 1.下载:从官网下载 OpenCV2.4.8: ...