博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[USACO11OPEN]玉米田迷宫Corn Maze
阅读量:5360 次
发布时间:2019-06-15

本文共 1583 字,大约阅读时间需要 5 分钟。

bfs

注意事项

①鬼畜死循环TLE

②装置不成对

③本来最优解被传送门的#给盖住了,必须新开一个数组来存

④步数没有+对,因为遇到传送门是跳着走的

#include 
#include
#include
#include
using namespace std;int n,m;char a[302][302];char usual[302][302];char special[302][302];int dx[4] = {0,1,0,-1};int dy[4] = {1,0,-1,0};struct qwq { int my_x1,my_x2,my_y1,my_y2; int flag;};map
cs;int be_x,be_y;struct Pos { int x,y,step;};queue
bfs;int main() { cin>>n>>m; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { cin>>a[i][j]; special[i][j]=a[i][j]; usual[i][j]=a[i][j]; if(a[i][j]>='A'&&a[i][j]<='Z') { if(cs[a[i][j]].flag==0) { cs[a[i][j]].my_x1=i; cs[a[i][j]].my_y1=j; cs[a[i][j]].flag++; } else { cs[a[i][j]].my_x2=i; cs[a[i][j]].my_y2=j; cs[a[i][j]].flag++; } special[i][j]=a[i][j]; } else if(a[i][j]=='@') { be_x=i; be_y=j; } } } bfs.push({be_x,be_y,0}); while(!bfs.empty()) { Pos head = bfs.front(); for(int i = 0; i < 4; i++) { int tx = head.x+dx[i], ty = head.y+dy[i]; if(a[tx][ty]=='=') { cout<
<
='A'&&a[tx][ty]<='Z' && special[tx][ty]!='#' ) { if(cs[a[tx][ty]].flag==1) { special[tx][ty]='#'; bfs.push({tx,ty,head.step+1}); continue; } special[tx][ty]='#'; char flag2=a[tx][ty]; if(cs[flag2].my_x1==tx && cs[flag2].my_y1 == ty) { tx=cs[flag2].my_x2; ty=cs[flag2].my_y2; } else { tx=cs[flag2].my_x1; ty=cs[flag2].my_y1; } bfs.push({tx,ty,head.step+1}); } else if(a[tx][ty]=='.' && usual[tx][ty]=='.') { usual[tx][ty]='#'; bfs.push({tx,ty,head.step+1}); } } bfs.pop(); } return 0;}

  

转载于:https://www.cnblogs.com/ainiyuling/p/11188478.html

你可能感兴趣的文章
Uva 11729 Commando War
查看>>
增强学习(一) ----- 基本概念
查看>>
ubuntu下USB连接Android手机
查看>>
C# 语句 分支语句 switch----case----.
查看>>
lseek函数
查看>>
反射获取 obj类 的属性 与对应值
查看>>
表单中的readonly与disable的区别(zhuan)
查看>>
win10下安装配置mysql-8.0.13--实战可用
查看>>
周记2018.8.27~9.2
查看>>
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
Ctrl+Alt+Down/Up 按键冲突
查看>>
python序列化和json
查看>>
mongodb
查看>>
网格与无网格
查看>>
2018年3月份
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>