hdu 2612 Find a way(bfs)

Problem Description
Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki.
Yifenfei’s home is at the countryside, but Merceki’s home is in the center of city. So yifenfei made arrangements with Merceki to meet at a KFC. There are many KFC in Ningbo, they want to choose one that let the total time to it be most smallest. 
Now give you a Ningbo map, Both yifenfei and Merceki can move up, down ,left, right to the adjacent road by cost 11 minutes.

 

Input
The input contains multiple test cases.
Each test case include, first two integers n, m. (2<=n,m<=200). 
Next n lines, each line included m character.
‘Y’ express yifenfei initial position.
‘M’    express Merceki initial position.
‘#’ forbid road;
‘.’ Road.
‘@’ KCF

 

Output
For each test case output the minimum total time that both yifenfei and Merceki to arrival one of KFC.You may sure there is always have a KFC that can let them meet.

 

Sample Input
4 4
Y.#@
....
.#..
@..M
4 4
Y.#@
....
.#..
@#.M
5 5
Y..@.
.#...
.#...
@..M.
#...#

 

Sample Output
66
88
66

 

bfs求出两个人到各个点的距离,最后枚举最短的距离。用c++提交WA,G++提交AC了,这是什么原因。。。

  1 #pragma comment(linker, "/STACK:1024000000,1024000000")
  2 #include<iostream>
  3 #include<cstdio>
  4 #include<cstring>
  5 #include<cmath>
  6 #include<math.h>
  7 #include<algorithm>
  8 #include<queue>
  9 #include<set>
 10 #include<bitset>
 11 #include<map>
 12 #include<vector>
 13 #include<stdlib.h>
 14 #include <stack>
 15 using namespace std;
 16 #define PI acos(-1.0)
 17 #define max(a,b) (a) > (b) ? (a) : (b)
 18 #define min(a,b) (a) < (b) ? (a) : (b)
 19 #define ll long long
 20 #define eps 1e-10
 21 #define MOD 1000000007
 22 #define N 206
 23 #define inf 1e12
 24 int n,m;
 25 char mp[N][N];
 26 struct Node{
 27    int x,y;
 28    int t;
 29 }st1,st2;
 30 int vis[N][N];
 31 int dirx[]={0,0,-1,1};
 32 int diry[]={-1,1,0,0};
 33 int dist1[N][N];
 34 int dist2[N][N];
 35 void bfs1(Node st){
 36    memset(vis,0,sizeof(vis));
 37    queue<Node>q;
 38    q.push(st);
 39    vis[st.x][st.y]=1;
 40 
 41    Node t1,t2;
 42    while(!q.empty()){
 43       t1=q.front();
 44       q.pop();
 45       for(int i=0;i<4;i++){
 46          t2.x=t1.x+dirx[i];
 47          t2.y=t1.y+diry[i];
 48          if(mp[t2.x][t2.y]=='#') continue;
 49          if(t2.x<0 || t2.x>=n || t2.y<0 || t2.y>=m) continue;
 50          if(vis[t2.x][t2.y]) continue;
 51          vis[t2.x][t2.y]=1;
 52          t2.t=t1.t+1;
 53          dist1[t2.x][t2.y]=t2.t;
 54          q.push(t2);
 55       }
 56    }
 57 }
 58 void bfs2(Node st){
 59    memset(vis,0,sizeof(vis));
 60    queue<Node>q;
 61    q.push(st);
 62    vis[st.x][st.y]=1;
 63 
 64    Node t1,t2;
 65    while(!q.empty()){
 66       t1=q.front();
 67       q.pop();
 68       for(int i=0;i<4;i++){
 69          t2.x=t1.x+dirx[i];
 70          t2.y=t1.y+diry[i];
 71          if(mp[t2.x][t2.y]=='#') continue;
 72          if(t2.x<0 || t2.x>=n || t2.y<0 || t2.y>=m) continue;
 73          if(vis[t2.x][t2.y]) continue;
 74          vis[t2.x][t2.y]=1;
 75          t2.t=t1.t+1;
 76          dist2[t2.x][t2.y]=t2.t;
 77          q.push(t2);
 78       }
 79    }
 80 }
 81 int main()
 82 {
 83    while(scanf("%d%d",&n,&m)==2){
 84       memset(dist1,0,sizeof(dist1));
 85       memset(dist2,0,sizeof(dist2));
 86       for(int i=0;i<n;i++){
 87          scanf("%s",mp[i]);
 88          for(int j=0;j<m;j++){
 89             if(mp[i][j]=='Y'){
 90                st1.x=i;
 91                st1.y=j;
 92                st1.t=0;
 93             }
 94             if(mp[i][j]=='M'){
 95                st2.x=i;
 96                st2.y=j;
 97                st2.t=0;
 98             }
 99          }
100       }
101 
102       bfs1(st1);
103       bfs2(st2);
104 
105       int ans=inf;
106       for(int i=0;i<n;i++){
107          for(int j=0;j<m;j++){
108             if(mp[i][j]=='@'){
109                if(dist1[i][j]!=0 && dist2[i][j]!=0){
110                   int sum=dist1[i][j]+dist2[i][j];
111                   if(sum<ans){
112                      ans=sum;
113                   }
114                }
115 
116             }
117          }
118       }
119       printf("%d\n",ans*11);
120 
121 
122    }
123     return 0;
124 }
View Code

 

 

转载于:https://www.cnblogs.com/UniqueColor/p/4972680.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256417.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

定义类或对象

学习总结&#xff1a; 工厂方式 原始的方式&#xff08;对象创建后动态定义对象的属性&#xff09; var oCar new Object; oCar.color "blue"; oCar.doors 4; oCar.mpg 25; oCar.showColor function() {alert(this.color); };创建对象 car&#xff0c;属性&…

七桥问题

怎么不重复地走完连接两座岛和陆地的七座桥&#xff1f; 简化为以下&#xff1a; 答案是不能走完的。 奇点&#xff1a;这个点有奇数条线汇聚于此 偶点&#xff1a;这个点有奇数条线汇聚于此 七桥问题——一笔画问题 若一个图形全部是偶点或者只有2个奇点&#xff08;没有…

office2016打开PPT出现解决VBE6EXT.OLB不能被加载问题的解决办法

第一步 打开路径C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesCommonX86\Microsoft Shared\VBA。找到VBA只要是默认安装路径均一样。 第二步 打开VBA6找到VBE6EXT.OLB将其复制到VBA7.1中。 第三步 打开VBA7.1找到VBE7.DLL将其复制到VBA6中。 第四步…

20151118小问题

1.模板引擎 百度百科:模板引擎(这里特指用于Web开发的模板引擎)是为了使 用户界面与业务数据(内容)分享而产生的,它或以生成特定格式的文档,用于网站的模板引擎就会产生一个标准的HTML文档. 目的:生成一个标准的HTML文档. 概念:模板引擎不属于特定技术领域,它是跨领域跨平台的概…

机器学习——人工神经网络之发展历史(神经元数学模型、感知器算法)

目录 一、神经元的数学模型 ​ 二、感知器算法&#xff08;SVM算法前身&#xff09; 1、目的 2、流程 >>>问题1&#xff1a;下图w和b的调整是什么意思&#xff1f; 3、算法的有效性验证 1&#xff09;原算法 2&#xff09;增广矩阵 3&#xff09;修改后的算法…

PHP 基础知识-数组

PHP 的数组主要分为&#xff1a; 索引数组 - 带有数字索引的数组关联数组 - 带有指定键的数组多维数组 - 包含一个或多个数组的数组 索引数组&#xff1a;有两种创建索引数组的方法&#xff1a;索引是自动分配的&#xff08;索引从 0 开始&#xff09;&#xff1a; 第一…

打开word2016总是出现很抱歉,此功能看似中断需要修复。。问题解决办法

第一步 打开运行窗口&#xff0c;在电脑桌面左下角有个圆圈点击进去&#xff0c;输入regedit&#xff0c;即可进入。 第二步 打开HKEY_CURRENT_USER中的SOFTWARE 第三步 找到HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Word\Options项如图红色箭头标示。然后点击O…

机器学习——人工神经网络之多层神经网络(多层与三层)

目录 一、多层神经网络 1、多层神经网络数学模型 2、数学模型中的非线性函数fai 1&#xff09;非线性函数fai存在的意义 2&#xff09;非线性函数fai具体是什么&#xff1f; 3、多层神经网络与单层神经网络的区别与改进 1&#xff09;单层神经网络数学模型 2&#xff0…

noip2012-day2-t2

【问题描述】 在大学期间&#xff0c;经常需要租借教室。大到院系举办活动&#xff0c;小到学习小组自习讨论&#xff0c;都需要向学校申请借教室。教室的大小功能不同&#xff0c;借教室人的身份不同&#xff0c;借教室的手续也不一样。 面对海量租借教室的信息&#xff0c;我…

机器学习——人工神经网络之后向传播算法(BP算法)

目录 一、后向传播算法的本质——梯度下降法求局部极值 1、w迭代公式的合理性

获取视图的宽高

1 view.measure(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 2 int width view.getMeasuredWidth(); 3 int height view.getMeasuredHeight(); 转载于:https://www.cnblogs.com/cmgrass/p/4978222.html

排序算法02--冒泡排序

思路&#xff1a;冒泡排序 就是把大的数一个个沉到下面&#xff0c;当然也可以是把小的数一个个浮到上面。 在最外层需要比较n-1次&#xff0c;因为n-1个大的数被沉到了下面&#xff0c;剩下一个自然就是最小的数了。 在这n-1次的里层&#xff0c;还需要亮亮相互比较&#xff0…

机器学习——人工神经网络之参数设置(BP算法)

目录 一、复习(BP算法) 二、训练模型的建议 三、参数设置内容 1、随机梯度下降(SGD)

关于▲的各种交点

对于△ABC证明&#xff1a; ①三角形的三条中线交于一点&#xff1a; 等腰三角形&#xff1a;作中线BD、CE与AC、AB交于D、E&#xff0c;相交于O&#xff0c;连接AO并延长交BC于F&#xff1b; 证△ABD全等于△ACE&#xff0c;再证△EBO全等于△D…

javaScript获取url中的参数

var urlTools {//获取RUL参数值getUrlParam: function(name) { /*?videoIdidentification */var params decodeURI(window.location.search); /* 截取&#xff1f;号后面的部分 index.html?actdoctor,截取后的字符串就是?actdoctor */var reg …

机器学习——支持向量机SVMpython实现

一、SVM理论 可见以下文章&#xff1a; 《机器学习——支持向量机SVM之线性模型》 《机器学习——支持向量机SVM之非线性模型低维到高维映射》 《机器学习——支持向量机SVM之非线性模型原问题与对偶问题》 《机器学习——支持向量机SVM之非线性模型原问题转化为对偶问题》…

琐碎易错点

1.font-size 设置的是字体的高 2.浏览器内核&#xff1a; 主流浏览器   内核 IE       trident Firfox     Gecko Chorme    Webkit&#xff08;原来&#xff09;/blink&#xff08;现在&#xff09; Safari     Webkit&#xff08;苹果公司独立研发的&a…

Python安装Jupyter Notebook配置使用教程

原文见&#xff1a;https://blog.csdn.net/qq_27825451/article/details/84427269 一、什么是jupyter 1、简介&#xff1a; jupyter notebook是一种 Web 应用&#xff0c;能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。它可以直接在代码旁…

ExtJS4.2学习(10)分组表格控件--GroupingGrid(转)

鸣谢网址&#xff1a;http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-11-17/179.html --------------------------------------------------------------------------------------------- 分组表格控件在我们的开发中经常被用到&#xff0c;GroupingGrid…

九个Console命令,让js调试更简单

一、显示信息的命令 1: <!DOCTYPE html>2: <html>3: <head>4: <title>常用console命令</title>5: <meta http-equiv"Content-Type" content"text/html; charsetutf-8" />6: </head>7: <body>8: …