博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2612 (BFS搜索+多终点)
阅读量:7053 次
发布时间:2019-06-28

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

题目链接

题目大意:两人选择图中一个kfc约会。问两人到达时间之和的最小值。

解题思路

对于一个KFC,两人的BFS目标必须一致。

于是就有以下的SB行为:记录所有KFC,对于每个KFC,对两人BFS。然后你就会看见红红的TLE。

实际上,只需要两次BFS就可以了,用time_k[0][i]记录a同学到达第i个kfc的时间,time_k[1][i]记录b同学到达第i个kfc的时间。

在一次bfs过程中,记录到达所有kfc的时间。

本题有个不严谨的地方,就是没有说明不被选择的kfc是相当于road还是障碍,我是当成road算的。

由于图中有些kfc是不能到达的,所以time_k数组初始化为inf,防止不能到达的kfc扰乱结果。

最后ans=min(ans,time_k[0][i]+time_k[1][i])。

 

#include "cstdio"#include "cstring"#include "string"#include "iostream"#include "queue"#include "vector"using namespace std;#define inf 0x3f3f3f3fint n,m,sx,sy,ssx,ssy,ex,ey,dir[4][2]={-1,0,1,0,0,-1,0,1},vis[205][205],ans,cnt,kfc[205][205],time_k[2][205*205];char map[205][205];struct status{    int x,y,dep;    status(int x,int y,int dep):x(x),y(y),dep(dep) {}};void bfs(int x,int y,int p){    memset(vis,0,sizeof(vis));    queue
Q; Q.push(status(x,y,0)); vis[x][y]=true; while(!Q.empty()) { status t=Q.front();Q.pop(); for(int s=0;s<4;s++) { int X=t.x+dir[s][0],Y=t.y+dir[s][1]; if(X<1||X>n||Y<1||Y>m||map[X][Y]=='#'||vis[X][Y]) continue; vis[X][Y]=true; if(map[X][Y]=='@') time_k[p][kfc[X][Y]]=t.dep+1; Q.push(status(X,Y,t.dep+1)); } }}int main(){ //freopen("in.txt","r",stdin); ios::sync_with_stdio(false); string tt; while(cin>>n>>m) { memset(time_k,0x3f,sizeof(time_k)); ans=inf,cnt=0; for(int i=1;i<=n;i++) { cin>>tt; for(int j=0;j

 

11915289 2014-10-19 20:15:30 Accepted 15MS 996K C++

转载于:https://www.cnblogs.com/neopenx/p/4035410.html

你可能感兴趣的文章
【镜像更新】Windows Server 2012 R2 数据中心版
查看>>
日志服务Python消费组实战(三):实时跨域监测多日志库数据 ...
查看>>
网站被黑跳转到其他网站的解决办法
查看>>
填报脚本之轻松搞定复杂表的数据入库
查看>>
HttpClient在多线程环境下踩坑总结
查看>>
接入高防后为什么有一些网站,APP等会出现延迟,打开速度慢等问题? ...
查看>>
Vue-cli3 简qian易yi教程
查看>>
Linux服务器---DansGuardian
查看>>
Intel处理器供应紧张最晚4季度缓解,俄勒冈州新工厂6月底前开建 ...
查看>>
Confluence 6 计划你的升级
查看>>
网站常见问题1分钟定位 - 如何使用阿里云ARMS轻松重现用户浏览器问题 ...
查看>>
【机器学习PAI实战】—— 玩转人工智能之综述
查看>>
基于HBase和Spark构建企业级数据处理平台
查看>>
MyBatis的配置方式
查看>>
5分钟,关于Python 解包,你需要知道的一切
查看>>
实验吧--隐写术
查看>>
NLP领域中更有效的迁移学习方法
查看>>
【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox
查看>>
蜗牛爬行日记——记Python语法基础与C语言的异同(二)
查看>>
云栖大会首设“科技脱贫”专场 ,20张会场门票等你来拿!
查看>>