D. 穿越机房
问题描述
众所周知,在机房里想从一个地方到另一个地方很困难。因为机房里不仅有很多的
桌子,还摆了很多的椅子。现在,建冬哥想找嘉娃一起 apom,他不能在众目睽睽之下
对着嘉娃大吼,所以,他必须走到嘉娃跟前。
我们把机房分为宽度为 w,高度为 h 的 w × h 个格子。每个格子或者是一张桌子,
或者有一把椅子,或者什么都没有。建冬哥不能通过有桌子的格子,可以以一个单位时
间通过什么都没有的格子,但是通过有椅子的格子时,建冬哥需要花两个单位时间。
现在给出建冬哥和嘉娃的位置,以及机房的构造,你能知道建冬哥最快要多长时间
才能到嘉娃身边吗?
输入格式
第一行 6 个整数 w, h, sr, sc, er, ec(3 ≤ w, h ≤ 20)。 w 和 h 表示机房的大小, (sr, sc)
表示建冬哥处在第 sr 行第 sc 列,同理 (er, ec) 表示目前嘉娃的位置。开始时建冬哥和
嘉娃肯定在机房里。接下来是一个 w × h 的矩阵,代表机房的地形:
• '.': 表示该格子没有障碍物,通过需要 1 个单位时间。
• '*': 表示该格子有一把椅子,通过需要 2 个单位时间。
• 'x': 表示该格子是一张桌子,不能通过。
输出格式
一个整数,表示建冬哥到嘉娃所在位置的最短时间。之后加一个换行。
样例输入
4 6 1 1 4 6
******
......
*xx*x.
.*...*
样例输出
11
提示
最后的输出结果为建冬哥经过路径上所有点的时间之和。
#include<cstdio>
int a[22][22];
int w=0,h=0,sr=0,sc=0,er=0,ec=0;
int min=100000;
void prework(){
scanf("%d %d %d %d %d %d",&w,&h,&sr,&sc,&er,&ec);
for(int j=1;j<=h;j++){
a[0][j]=-1;
a[w+1][j]=-1;
}
for(int i=1;i<=w;i++){
a[i][0]=-1;
a[i][h+1]=-1;
}
char s[20];
for(int i=1;i<=w;i++){
scanf("%s",s);
for(int j=1;j<=h;j++){
if(s[j-1]=='.')
a[i][j]=1;
else if(s[j-1]=='*')
a[i][j]=2;
else if(s[j-1]=='X')
a[i][j]=-1;
}
}
}
void search(){
if((sr==er)&&(sc==ec)){
min = a[sr][sc];
return;
}
int del_r[4]={1,-1,0,0};
int del_c[4]={0,0,1,-1};
struct unit{
int r;
int c;
int time;
};
unit queue[4000];
int p=0,q=1;
queue[0].r = sr;
queue[0].c = sc;
queue[0].time=a[sr][sc];
// printf("%d: %d %d %d\n",p,queue[p].r,queue[p].c,queue[p].time);
while(p!=q){
for(int i=0;i<4;i++){
int r = queue[p].r+del_r[i];
int c = queue[p].c+del_c[i];
if(1==a[r][c]){
bool flag = true;
for(int j=0;j<q;j++){
if((queue[j].r==r)&&(queue[j].c==c)&&(queue[j].time<=queue[p].time+1)){
flag = false;
break;
}
}
if(!flag) continue;
queue[q].r=r;
queue[q].c=c;
queue[q].time = queue[p].time+1;
// printf("%d: %d %d %d\n",q,queue[q].r,queue[q].c,queue[q].time);
if((queue[q].r==er)&&(queue[q].c==ec)&&(min>queue[q].time)){
min = queue[q].time;
}
q++;
}
}
for(int i=0;i<4;i++){
int r = queue[p].r+del_r[i];
int c = queue[p].c+del_c[i];
if(2==a[r][c]){
bool flag = true;
for(int j=0;j<q;j++){
if((queue[j].r==r)&&(queue[j].c==c)&&(queue[j].time<=queue[p].time+2)){
flag = false;
break;
}
}
if(!flag) continue;
queue[q].r=r;
queue[q].c=c;
queue[q].time = queue[p].time+2;
// printf("%d: %d %d %d\n",q,queue[q].r,queue[q].c,queue[q].time);
if((queue[q].r==er)&&(queue[q].c==ec)&&(min>queue[q].time)){
min = queue[q].time;
}
q++;
}
}
p++;
}
}
int main(){
prework();
// for(int i=0;i<=w+1;i++){
// for(int j=0;j<=h+1;j++){
// printf("%d ",a[i][j]);
// }
// printf("\n");
// }
search();
printf("%d\n",min);
return 0;
}
分享到:
相关推荐
unzip 8th_pc.zip -d /path/to/destination ``` 如果"8th_pc"文件是配置文件,可能包含系统设置、用户偏好或软件的运行参数。如果是代码文件,可能是C、Python、Java等语言的源代码,需要相应的编译器或解释器来...
根据提供的文件信息,我们可以确定这是一本关于常微分方程基础的书籍,书名为《Fundamentals of Differential Equations 8th edition》,作者是R.Kent Nagle,Edward B. Saff 和 Arthur David Snider。这本书是针对...
D矩阵的设计还需要计算Dd矩阵,它依赖于特征值λd和失败事件向量fi。使用MATLAB中的“place”函数可以将特征值分配到向量空间中,从而设计出最终的D矩阵。 在实际应用中,以自动转向系统为例,该系统在自动辅助驾驶...
By 作者: D. S. Malik ISBN-10 书号: 1337102083 ISBN-13 书号: 9781337102087 Edition 版本: 8 出版日期: 2017-02-13 pages 页数: 1491 Contents Chapter 1. An Overview Of Computers And Programming Languages...
首先,标题“Understanding Automotive Electronics 8th - Appendix B”和描述“Understanding Automotive Electronics 8th Appendix B - Discrete Time Systems Theory”指出,汽车电子控制系统和仪表系统,以及...
- 锚杆承载力取决于锚固段长度、锚杆孔径和土的抗剪强度,可用公式Nt=LmπDτ计算。 4. **影响锚杆抗拔力的因素** - 土层性质:土层的强度和抗剪强度直接影响锚固效果。 - 注浆压力:增大灌浆压力能提高锚固效果...
15. 完成句子:"Many people will come to Beijing when the 29th Olympic Games _______ in Beijing on August 8th, 2008." 知识点:本题考查的是将来时的被动语态的用法,正确选项应为B.will be held(将在......
OpenGL-Programming-Guide-8th-Edition-Code这是OpenGL编程指南(第八版)书中代码,使用VS2015建立的工程。目标平台版本是8.1,平台工具集是v140。 使用高版本VS打开项目时,如果不想升级可以安装 ,安装v140平台...
最后,书中可能还包括了实验方法和数值计算技术,如风洞试验、激光多普勒测速仪(LDV)和计算流体动力学(CFD)等,这些都是现代流体力学研究和工程实践中的重要工具。 《流体力学》第八版不仅提供了丰富的理论知识...
2. We couldn’t connect Malaysia MH370 _______ Mar8th, 2014. 答案:A. on 解析:在具体日期前使用介词"on",所以正确答案是"on March 8th, 2014"。 3. Please call Xiaoxi ______ 0531-88881234 if you have ...
- **适用范围**:Formel-Q质量能力不仅应用于一级供应商,还适用于n级供应商(选项D),确保整个供应链的质量一致性。 #### 二、供应商分级与采购订单关联 - **供应商分级**:Formel-Q将供应商分为不同的级别(如A...
With the introduction of vehicle stability systems like ESP®, and passive safety systems like seat belts and airbags, driving safety has been improved and the number of road traffic ...
- December(十二月)缩写为D, D, Dec. 4. 序数词: - 序数词用于表示顺序,如first(第一)、second(第二)、third(第三)到twelfth(第十二)。 - 英语中的序数词有特定的缩写形式,例如1st(第一)、2nd...
该芯片组的前端总线频率为 400/533MHz,支持 DDR/DDR2 内存,最高传输标准为 DDR 333/D,内存模组为 2,最大内存容量为 2G,不支持 ECC 校验。该芯片组的南桥功能包括 IDE 接口、SATA 接口、U 接口、集成声卡等。 ...
2. J.D.Sachs, Macroe conomics in the Global Economy 3. M .Doe pke, A .Lehnert, A .W. Sellgren, Macroe conomics. 4. R. Dornbusch, Macroeconomic s, 8TH Edition. 5. N. Gregory Mankiw, M acroeconomics, 6...
将“CollinsEC.dictionary”文件解压并放入指定的目录后,用户只需在系统中打开“词典”应用或者使用快捷键(例如Command+Shift+D),就可以轻松访问这部强大的学习工具。这对于提升个人英语水平、进行学术研究或...
---It’s on March 8th, it’s just around the ______." 在英语中,“around the corner”是一个习语,表示“即将来临,就在眼前”。因此,回答者在说她的生日即将到来,正确答案是C。 通过这些练习题,学生们...
概率与统计推断本课程介绍了R的概率和统计推断。... Garland,P.-R统计数据,Springer 2008 詹姆斯(James,G.),维滕(Witten),D。 统计学习简介(第112卷,第18页)。 纽约:史宾格。 图书网站:
Machine Learning, Classification problem.... Also known as "Census Income" ... education: Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10