BZOJ 3299: [USACO2011 Open]Corn Maze玉米迷宫(BFS)
水题一道却交了4次QAQ,真是蒟蒻QAQ
CODE:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
struct node{
int x,y,t;
}st,en;
queue<node> s;
#define maxn 1010
int a[maxn][maxn];
bool b[maxn][maxn];
int w[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int n,m;
char str[10000];
int main(){
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++){
scanf("%s",str);
for (int j=1;j<=m;j++){
if (str[j-1]=='#') a[i][j]=1;
else if (str[j-1]=='@') {st=(node){i,j,0};a[i][j]=1;}
else if (str[j-1]=='=') en=(node){i,j,0};
else if (str[j-1]!='.')a[i][j]=str[j-1];
}
}
s.push(st);
for (int i=1;i<=n;i++) a[i][0]=a[i][m+1]=1;
for (int i=1;i<=m;i++) a[0][i]=a[n+1][i]=1;
while (!s.empty()){
node u=s.front();
if (u.x==en.x&&u.y==en.y) {printf("%d",u.t);return 0;}
s.pop();
for (int i=0;i<4;i++)
if (a[u.x+w[i][0]][u.y+w[i][1]]!=1){
if (a[u.x+w[i][0]][u.y+w[i][1]]>1){
if (b[u.x+w[i][0]][u.y+w[i][1]]) continue;
b[u.x+w[i][0]][u.y+w[i][1]]=1;
for (int k=1;k<=n;k++)
for (int j=1;j<=m;j++)
if ( a[k][j]==a[u.x+w[i][0]][u.y+w[i][1]] &&(u.x+w[i][0]!=k||u.y+w[i][1]!=j) ) {s.push((node){k,j,u.t+1});}
}else {
a[u.x+w[i][0]][u.y+w[i][1]]=1;
s.push((node){u.x+w[i][0],u.y+w[i][1],u.t+1});
}
}
}
return 0;
}
BZOJ 3299: [USACO2011 Open]Corn Maze玉米迷宫(BFS)的更多相关文章
- 3299: [USACO2011 Open]Corn Maze玉米迷宫
3299: [USACO2011 Open]Corn Maze玉米迷宫 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 137 Solved: 59[ ...
- 【BZOJ】3299: [USACO2011 Open]Corn Maze玉米迷宫(bfs)
http://www.lydsy.com/JudgeOnline/problem.php?id=3299 映射一下传送门即可.. #include <cstdio> #include &l ...
- bzoj3299 [USACO2011 Open]Corn Maze玉米迷宫
Description 今年秋天,约翰带着奶牛们去玩玉米迷宫.迷宫可分成NxM个格子,有些格子种了玉 米,种宥玉米的格子无法通行. 迷宫的四条边界上都是种了玉米的格子,其屮只有一个格子 没种,那就是 ...
- 【bzoj 3299】 [USACO2011 Open]Corn Maze玉米迷宫(最短路)
就一个最短路,并且边长都是1,所以每个点只搜一次. /************************************************************** Problem: 3 ...
- P1825 [USACO11OPEN]玉米田迷宫Corn Maze
题目描述 This past fall, Farmer John took the cows to visit a corn maze. But this wasn't just any corn m ...
- 洛谷——P1825 [USACO11OPEN]玉米田迷宫Corn Maze
P1825 [USACO11OPEN]玉米田迷宫Corn Maze 题目描述 This past fall, Farmer John took the cows to visit a corn maz ...
- 洛谷—— P1825 [USACO11OPEN]玉米田迷宫Corn Maze
https://www.luogu.org/problem/show?pid=1825 题目描述 This past fall, Farmer John took the cows to visit ...
- 洛谷 P1825 [USACO11OPEN]玉米田迷宫Corn Maze
P1825 [USACO11OPEN]玉米田迷宫Corn Maze 题目描述 This past fall, Farmer John took the cows to visit a corn maz ...
- [USACO11OPEN]玉米田迷宫Corn Maze
题目描述 This past fall, Farmer John took the cows to visit a corn maze. But this wasn't just any corn m ...
随机推荐
- CSS实现导航条Tab切换的三种方法
前面的话 导航条Tab在页面中非常常见,本文说详细介绍CSS实现导航条Tab的三种方法 布局 根据上图所示,先规定几个定义,上图的模块整体叫做导航,由导航标题和导航内容组成.要实现上图所示的布 ...
- 关于jquery的$.ajax发接口的同步与异步问题
1.在使用$.ajax发接口时想对返回数据做一些处理后拿到其他方法中使用 发请求函数如下: function getProjectName(projectId){ project.projectNam ...
- 华硕A450c详细清灰拆机教程
很久都想写点东西,但又无从下笔. 上次把自己的笔记本清了灰,这次有时间就整理一下,随便作为我的第一次随笔. 准备:笔记本(我的是华硕A450c),拆机工具(螺丝刀等) 温馨提示:要慢点 1,先翻开笔记 ...
- Python使用Selenium/PhantomJS
安装selenium: 1 pip install selenium 安装PhantomJS: 1 2 3 4 https://bitbucket.org/ariya/phantomjs/downlo ...
- bootstrap-datepicker的简单使用
先说datepicker. github上的地址是:https://github.com/eternicode/bootstrap-datepicker. 效果如下: 在bundle里面引用添加js ...
- nlpir分词器过期处理
nlpir分词器的非商业授权期限只有1个月,到期之后使用分词器在创建实例时就会提示授权到期,解决方法如下: 在nlpir发明者张教授的github页面下载对应的授权证书,地址在这. 将下载的证书覆盖分 ...
- php字符串比较
比较两个字符串是否相等,最常见的方法就是使用“===”来判断,至于它和“==”的区别,简单来说 就是前者强调“identical”类型也要求一样:后者要求“equal”,值相同就可以了.或者使用str ...
- Selenium2(java)环境搭建 一
Selenium2(java)环境搭建 1.下载JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2 ...
- 【WebService】WebService学习笔记
WebService三要素 WebService三要素SOAP(Simple Object Access Protocol).WSDL(WebServicesDescriptionLanguage). ...
- Delphi遍历文件夹及子文件夹(可查找固定格式文件)
Delphi遍历文件夹及子文件夹 {-------------------------------------------------------------------------------过程名 ...