hdu 2612 Find a way

yyPurpose yyPurpose 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这是一题广搜题,但是结果却是测试样例过了但是提交却是WA,求大神请教!!!

‘Y’ 代表Y的位置
‘M’ 代表M的位置
‘#’ 代表墙
‘.’ 代表路
‘@’ 代表KCF

找出一条路使得Y和M走到KFC的时间最短(Y和M每走一步耗时11分钟),输出最短时间。

下面是代码:

#include<iostream>
#include<queue>
#include<stdio.h>
#include<string.h>
using namespace std;
int n,m;
int yx,yy;
int mx,my;
int dir[4][2]={0,1,0,-1,1,0,-1,0};
int map[210][210];
int KFC[210][3];
int Knum=0;
int time;
int tt;
queue<int>pointx;
queue<int>pointy;
bool isin(int x,int y)
{
return x>=0&&y>=0&&x<n&&y<m;
}
void bfs(int x,int y)
{
pointx.pop();
pointy.pop();
for(int i=0;i<Knum;i++)
{
if(x==KFC[i][0]&&y==KFC[i][1])
{
KFC[i][2]+=map[x][y]; //记录一个人走到一个KFC所需的时间
tt++;
}
}
if(tt==Knum)
{
map[x][y]=0;
return;
}
int x1,y1,z1;
for(int i=0;i<4;i++) //向四个方向搜索
{
x1=x+dir[i][0];
y1=y+dir[i][1];
if(isin(x1,y1)==true&&map[x1][y1]==0) //达到条件在地图中且未搜索过,则标记并压入队列
{
map[x1][y1]=map[x][y]+1;
pointx.push(x1);
pointy.push(y1);
}
}
if(!pointx.empty()&&!pointy.empty()) //如果队列未空,则继续头元素搜索
bfs(pointx.front(),pointy.front());
map[x][y]=0;
return;
}
int main()
{
char x;
while(cin>>n>>m)
{
memset(map,0,sizeof(map));
memset(KFC,0,sizeof(KFC));
Knum=0;
time=2000000000;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>x;
if(x=='#')map[i][j]=-1;
else if(x=='.')map[i][j]=0;
else if(x=='Y')
{
map[i][j]=1;
yx=i;
yy=j;
}
else if(x=='M')
{
map[i][j]=1;
mx=i;
my=j;
}
else if(x=='@')
{
map[i][j]=0;
KFC[Knum][0]=i;
KFC[Knum][1]=j;
KFC[Knum][2]=0;
Knum++;
}
}
tt=0; //Y先走
pointx.push(yx);
pointy.push(yy);
bfs(pointx.front(),pointy.front());
while(!pointx.empty()) //清空队列
{
map[pointx.front()][pointy.front()]=0;
pointx.pop();
pointy.pop();
}
tt=0; //M后走
pointx.push(mx);
pointy.push(my);
bfs(pointx.front(),pointy.front());
while(!pointx.empty()) //清空队列
{
pointx.pop();
pointy.pop();
}
for(int i=0;i<Knum;i++)
{
if(KFC[i][2]-2<time)
{
time=KFC[i][2]-2;
}
}
cout<<time*11<<endl;
}
}
...全文

相关推荐

前端开发组件示例源码_f1b6a91d详解

前端开发组件示例源码_f1b6a91d,内容包含源码/脚本与使用说明文档,结构清晰、注释完整,适合学习参考与二次开发,下载解压即可查看。

鱿鱼助手

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-Gjl4Gf1792158475

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;Gjl4Gf1792158475 www.gblp.net www.gsctlq.com gezhixq.cn www.greendalian.com wap.gxqnm.com

2601_97196179

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-5Z6jeSqI1792158476

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;5Z6jeSqI1792158476 sdhmgggw168.com www.shangliangwangye.com www.sdbing.net migu.blsxex.abxlbz.sc.cn www.safespeed.net.cn

2601_97196179

高校如何通过科技报告服务提升技术转移转化效率?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

科技服务机构如何提升服务大企业的技术诊断能力?.docx

科技服务机构如何提升服务大企业的技术诊断能力?

BIZKEEN
评论 6
收藏 已收藏
分享
返回顶部
yyPurpose
C++ 语言 65,214 成员 250,514 内容