解题报告——2018级2016第二学期第二周作业

primejscty primejscty     2022-08-04     766

关键词:

解题报告——2018级2016第二学期第二周作业

D:迷宫问题

题目描述:

定义一个二维数组: 

int maze[5][5] = {

 

0, 1, 0, 0, 0,

 

0, 1, 0, 1, 0,

 

0, 0, 0, 0, 0,

 

0, 1, 1, 1, 0,

 

0, 0, 0, 1, 0,

 

};


它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。

 

输入

一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。

输出

左上角到右下角的最短路径,格式如样例所示。

样例输入

0 1 0 0 0

0 1 0 1 0

0 0 0 0 0

0 1 1 1 0

0 0 0 1 0

样例输出

(0, 0)

(1, 0)

(2, 0)

(2, 1)

(2, 2)

(2, 3)

(2, 4)

(3, 4)

(4, 4)

分析:

这题可以用宽搜来做,但是我们要多开一数组来存储这个点的前点;

我没有用二维的dl数组,而是分别开了x,y,pp数组;

同其他宽搜一样在选择路径中用循环路径表;

一开始我多开了一个数组来储存这个点的序号,但我发现这样比麻烦,而且容易出错,所以,后来我用了fp来表示当前和以后的序号;

在输出是我用了递归函数,从p开始一直到ppt==1(注意不是==0,否则会有两个(0,0))时printppt】)在其后面加上输出;

因为是递归所以自然会倒叙输出;

 

代码:

#include<cstdio>#include<cmath>#include<iostream>#include<cstdlib>#include<cstring>

using namespace std;

int   tu[100][100];const int dx[4]={0,0,1,-1};const int dy[4]={1,-1,0,0};int x[100],y[100],pp[100];//行,列,前点

int  print(int t){//递归函数

    if(t!=1)

        print(pp[t]);

    cout<<"("<<x[t]<<", "<<y[t]<<")"<<endl;}

int main(){

     for(int i=0;i<5;i++)

        for(int j=0;j<5;j++)

        cin>>tu[i][j];//读入

     int f=1,p=2;

     x[1]=0;y[1]=0;pp[0]=0;

     tu[0][0]=1;

     bool flag=true;

     while(f<p&&flag){

        for(int i=0;i<4;i++){

            int hh=x[f]+dx[i];

            int ll=y[f]+dy[i];

            if(tu[hh][ll]==0&&hh>=0&&hh<5&&ll>=0&&ll<5){//可能性判断

                pp[p]=f;

                x[p]=hh;

                y[p]=ll;

                tu[hh][ll]=1;

                if(hh==4&&ll==4){flag =false;break;}//判断终点

                p++;

            }

        }

        f++;

     }

     print(p);//输出

     return 0;}

 

算法:宽搜;

解题报告——2018级2016第二学期第四周作业(2的幂次方)

 解题报告——2018级2016第二学期第四周作业题目:描述任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20。   同时约定方次用括号来表示,即ab 可表示为a(b)。    由此可知,137可... 查看详情

解题报告——2018级2016第二学期第一周作业

 解题报告——2018级2016第二学期第一周作业 D算24题目描述描述给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式... 查看详情

解题报告——2018级2016第二学期第五周作业排座椅

解题报告——2018级2016第二学期第五周作业F:排座椅描述上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,... 查看详情

解题报告——2018级2016第二学期第五周作业删数问题

解题报告—— 2018级2016第二学期第五周作业 删数问题 描述键盘输入一个高精度的正整数n(<=240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得... 查看详情

结题报告——2018级2016第二学期第四周作业10.2

 C:〖NOIP1998〗2的幂次方 描述任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20。   同时约定方次用括号来表示,即ab 可表示为a(b)。    由此可知,137可表示为:2(7)+2(3)+2(0)... 查看详情

结题报告——2018级2016第二学期第三周作业9.24

题目一:〖NOIP2002P〗过河卒描述  如图,A点有一个过河卒,需要走到目标B  点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为... 查看详情

结题报告——2018级2016第二学期第五周作业9.24

F:〖NOIP2008P〗排座椅描述上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头... 查看详情

第二周作业二每周例行报告

项目类型:个人项目项目完成情况:已完成项目改进:增加需求项目日期:2016.9.12-2016.9.1312号13号项目:四则运算出题程序项目类型:结对项目项目完成情况:已完成项目改进:增加需求项目日期:2016.9.14----2016.9.1514号15号 &n... 查看详情

软件工程作业第二周--例行报告

类型任务开始结束中断deltacoding重定向/输入/输出的代码9.16晚上6点9:16晚上八点半--150mincoding文件夹读文件/控制台直接读/整合9.17早上9点9:17晚上七点12点午饭/午睡到4点/晚饭,12点-4点以及五点到五点半330min安装装Git,试... 查看详情

2018年-2019年第二学期第二周c#学习个人总结

  在本学期的第二周,我们又开始了C#的学习。在星期一的C#课上时,我们学了this关键字的用法其中包括1.this访问属性2.this访问成员方法3.this访问构造方法。在this访问属性中通过this关键字可以明确地去访问一个类的属性... 查看详情

2018年暑期第二周进度总结报告

     第二周作息渐渐步入正轨,随着科一考试的顺利通过,花在驾考上的时间也渐渐缩小,有了更多的自我分配的时间来学习和做自己感兴趣的事。     每天学习java的任务也每日完成,但是通过... 查看详情

2017-2018-21723《程序设计与数据结构》第九周作业&第二周结对编程总结

...己的评分有意见请私聊刘助教)提交情况如图:结对编程第二周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1872(作业界面已评分,可随时查看 查看详情

2017-2018-220179305《网络攻防技术》第二周作业

Q1国内外著名黑客介绍1、国内著名黑客黄鑫简介黄鑫,网名木马冰河,毕业于西安电子科技大学,职业是网络安全网站“安全焦点”冰河木马软件的创作者。99年,木马虽然已经在黑客中间遍布使用,但多数为国外的BO和BUS等木... 查看详情

2017-2018-220179202《网络攻防技术》第二周作业(代码片段)

一、黑客信息袁仁广,中国国家信息安全漏洞库特聘专家,北京奥运会特聘信息安全专家,现任腾讯湛泸实验室负责人。其领衔的360漏洞研究实验室被誉为“东半球最强大的白帽子军团”。他在windows系统方面的造诣,在国内应... 查看详情

第二周作业七四人小组项目

小组名称:中文名称:新蜂     英文名称:newbee组长:武志远组成员:宫成荣李峤杜月选题:Java俄罗斯方块项目期限:十周内,暂定2016.9.10-2016.11.19用户需求:构建一个功能强大,界面美观的经典俄罗斯方块,用来实现用... 查看详情

《实时控制软件设计》第二周作业

 状态分析由题目描述,只有两种不同事件,一个是车辆进入,一个是车辆离开,与之对应的传感器信号,起落杆信号,通行灯信号都是一同变化,因此可以简化成两种复合状态。 代码实现 传感器头文件////Createdbyzhuha... 查看详情

第二周作业

title:第二周作业tags:nullcategories:nulldate:2022-08-0409:03:471.权限管理及文本编辑工具1.1.默认权限管理1.1.1.umask值用来保留在创建文件或目录的权限新建文件和目录默认权限新建文件默认权限:666-u 查看详情

软工课设第二周周一报告

v:*{behavior:url(#default#VML);}o:*{behavior:url(#default#VML);}w:*{behavior:url(#default#VML);}.shape{behavior:url(#default#VML);} 姓名张骁时间2016年7月4日学习内容   今天的目标是更换按钮背景以及添加窗口化游玩的功 查看详情