博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2612 Find a way BFS,防止超时是关键
阅读量:4935 次
发布时间:2019-06-11

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

之前我写的时候是:每找到一个‘@’就广搜一次,如果这样写有多少个‘@’就会广搜几次,这样就超时了。我队友告诉我应该打个表,这个方法确实不错。因为'Y'和'M'是唯一的,我通过这两个点分别广搜一次,对所有到达‘@’的情况打个表,这样就节省了很多时间。具体看代码吧。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x3f3f3f3f#define MAX 1005using namespace std;int n,m,vis[MAX][MAX],v[4][2]= { { 0,1},{ 0,-1},{ 1,0},{-1,0}},Time[MAX][MAX],b[MAX][MAX];char Map[MAX][MAX];struct node{ int x,y,step;};void BFS(int sx,int sy){ memset(vis,0,sizeof(vis)); queue
Q; node a,next; a.x=sx; a.y=sy; a.step=0; Q.push(a); vis[sx][sy]=1; while(!Q.empty()) { a=Q.front(); Q.pop(); if(Map[a.x][a.y]=='@' && !b[a.x][a.y])//数组b记录是否到达过这个‘@’ { b[a.x][a.y]=1; Time[a.x][a.y]+=a.step*11; next.x=sx; next.y=sy; next.step=0; Q.push(next); } for(int i=0; i<4; i++) { next.x=a.x+v[i][0]; next.y=a.y+v[i][1]; if(next.x>=0 && next.x
=0 && next.y
View Code

 

转载于:https://www.cnblogs.com/alan-W/p/5676545.html

你可能感兴趣的文章
web服务器
查看>>
EV: Workaround to Allow Only One Instance or Window of outlook
查看>>
数据校验,
查看>>
IntelliJ IDEA完美解决tomcat8+乱码问题
查看>>
GDI+ ColorMatrix的完全揭秘
查看>>
破解电信光猫华为HG8120C关闭路由功能方法
查看>>
在Qt示例项目的C ++ / QML源中的//! [0]的含义是什么?
查看>>
【智能家居篇】wifi网络接入原理(上)——扫描Scanning
查看>>
操作引入xml文件的书包(定位到指定节点)
查看>>
操作系统学习笔记系列(一)- 导论
查看>>
已计划将多个默认网关用于提供单一网络
查看>>
CSS实例:图片导航块
查看>>
python进阶七_文件操作(三)
查看>>
window的对象有哪些(笔记)
查看>>
成绩查询方法指引Pmp
查看>>
Boolean Expressions
查看>>
They Are Everywhere
查看>>
数据结构--汉诺塔递归Java实现
查看>>
day14 多态与抽象
查看>>
Eclipse CDT 出现 launch failed Binary not found
查看>>