`
godfrey90
  • 浏览: 56106 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

8th_D

阅读更多
                         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;
}



分享到:
评论

相关推荐

    8th_pc.zip

    unzip 8th_pc.zip -d /path/to/destination ``` 如果"8th_pc"文件是配置文件,可能包含系统设置、用户偏好或软件的运行参数。如果是代码文件,可能是C、Python、Java等语言的源代码,需要相应的编译器或解释器来...

    Fundamentals_of_Differential_Equations_8th_ed.pdf

    根据提供的文件信息,我们可以确定这是一本关于常微分方程基础的书籍,书名为《Fundamentals of Differential Equations 8th edition》,作者是R.Kent Nagle,Edward B. Saff 和 Arthur David Snider。这本书是针对...

    Understanding Automotive Electronics 8th - Appendix D

    D矩阵的设计还需要计算Dd矩阵,它依赖于特征值λd和失败事件向量fi。使用MATLAB中的“place”函数可以将特征值分配到向量空间中,从而设计出最终的D矩阵。 在实际应用中,以自动转向系统为例,该系统在自动辅助驾驶...

    C++ Programming: From Problem Analysis to Program Design, 8th Edition

    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”和描述“Understanding Automotive Electronics 8th Appendix B - Discrete Time Systems Theory”指出,汽车电子控制系统和仪表系统,以及...

    8th深基坑与边坡工程.pptx

    - 锚杆承载力取决于锚固段长度、锚杆孔径和土的抗剪强度,可用公式Nt=LmπDτ计算。 4. **影响锚杆抗拔力的因素** - 土层性质:土层的强度和抗剪强度直接影响锚固效果。 - 注浆压力:增大灌浆压力能提高锚固效果...

    PET测试试题.pdf

    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-Programming-Guide-8th-Edition-Code这是OpenGL编程指南(第八版)书中代码,使用VS2015建立的工程。目标平台版本是8.1,平台工具集是v140。 使用高版本VS打开项目时,如果不想升级可以安装 ,安装v140平台...

    Fluid-Mechanics-8th-ed-Frank M.White.rar

    最后,书中可能还包括了实验方法和数值计算技术,如风洞试验、激光多普勒测速仪(LDV)和计算流体动力学(CFD)等,这些都是现代流体力学研究和工程实践中的重要工具。 《流体力学》第八版不仅提供了丰富的理论知识...

    2020年中考英语总复习专题10介词练习题基础版含解析20200409295

    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第八版考试题目.docx

    - **适用范围**:Formel-Q质量能力不仅应用于一级供应商,还适用于n级供应商(选项D),确保整个供应链的质量一致性。 #### 二、供应商分级与采购订单关联 - **供应商分级**:Formel-Q将供应商分为不同的级别(如A...

    Integrated Power Brake (IPB)

    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 ...

    ★★新目标英语七年级上_unit8_when_is_your_birthday_课件.ppt

    - 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...

    [Mac词典]Collins COBUILD Advanced Learner's Dictionary

    将“CollinsEC.dictionary”文件解压并放入指定的目录后,用户只需在系统中打开“词典”应用或者使用快捷键(例如Command+Shift+D),就可以轻松访问这部强大的学习工具。这对于提升个人英语水平、进行学术研究或...

    九年级英语下册Unit6EntertainmentandFriendshipTopic3IwillrememberourfriendshipforeverSectionA练习题新版仁爱版

    ---It’s on March 8th, it’s just around the ______." 在英语中,“around the corner”是一个习语,表示“即将来临,就在眼前”。因此,回答者在说她的生日即将到来,正确答案是C。 通过这些练习题,学生们...

    Probability_and_Statistical_Inference:R代码,用于概率论和统计推断

    概率与统计推断本课程介绍了R的概率和统计推断。... Garland,P.-R统计数据,Springer 2008 詹姆斯(James,G.),维滕(Witten),D。 统计学习简介(第112卷,第18页)。 纽约:史宾格。 图书网站:

    Predict whether income exceeds $50K/yr based on census data. Als

    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

Global site tag (gtag.js) - Google Analytics