这次学校数据结构机考,题目很奇怪,简直让我觉得这是算法考试……三道题,撑死了用到树的遍历和并查集,连个队列都没用,也是醉了-.-

第一题 高精度加法

   两个数相加,数最多5000位,也就是和最多5001位,而且连数的长度都会给。直接两个数组相加就好。

第二题 给出树的前序、中序遍历,要求写出树的后序遍历。

   一棵树,若知道两种遍历,且其中一种是中序遍历,那么必然可以确定下这棵树,自然也可以求出第三种遍历。而这道题中,树最多有26个点(还是52个?记不清了),这就是告诉我们:你们随便搞吧,别进死循环就不会超时~~因此,我们只需要在纸上手动操作一下样例,看看如何构造出这棵树,然后用计算机搞定这个过程,最后后序遍历一下就好了。

第三题 给出两个N×M的矩阵,问只通过交换两行和交换两列,是否可以从其中一个矩阵构造出另一个。

分析一下这两种操作,以交换两行为例:操作过程中,原来是一行的那些元素,换完了还是在一行;原来是一列的那些元素,现在还是在一列。而且,还可以想到,一旦满足这个条件,那么这两个矩阵一定可以互相构造出来,证明略。(因为这个很明显是对的,但是我暂时只能想到很麻烦的证明方法,所以就先不写了,等我想到很简洁漂亮的方法,会在此更新的。)因此,我们只要去判断这个就好了:A矩阵中随便取一行元素,在B矩阵中找相同的元素,应当也是在同一行;列同上。我暂时想到的有两种方法——

方法一:并查集。在此只说行如何做,列的类似就好了。我们首先初始化并查集,然后扫一遍A矩阵,一行一行扫,把每行的所有数都合并到同一个集合。这样搞完,两个数如果在同一个集合中,则说明他们在A中处于同一行。此时,我们再扫一遍B矩阵,也是一行一行扫,每一行的数据判断下是否都在同一个集合中(判断方法随意,保证线性即可,当然此题数据太小,此处平方级别也可以过),这样如果全都合法,就说明B中在同一行的数据,在A中也处于同一行。如此这般,行列都做完,都合法,也就可以输出Yes了,否则中间直接跳出输出No便可。应当注意的是,题目本身保证了一个矩阵中没有相同的数,在此条件之下,上面判断过程如果都满足,则说明两矩阵中的元素完全一样,这个无需单独判断。

方法二:存映射。如果你不想用并查集,比如你想提高效率(毕竟并查集的复杂度不是O(1)而是O(α)嘛-.-),或者觉得并查集代码太麻烦(毕竟有四五行-.-),那么你可以考虑详细一些。其实,我们只需要做到下面这样就足够了:对于A矩阵中的任意一个数,都可以瞬间找到其在B矩阵中的位置。这种思路下,我们只要扫一遍B,存一个下标0~10000的数组siteB(元素的范围是0~10000),数组中的元素是坐标(i,j),其意义为:siteB[x]表示x在B中的位置。而后,我们扫一遍A矩阵,一行一行扫,利用siteB数组,判断每行元素在B中是否也位于同一行。至此,后面均同方法一,略。

    代码有时间补上。

转载于:https://www.cnblogs.com/icedream61/p/4184785.html

大二《数据结构》机考解题报告相关推荐

  1. 2021年CFA二三级机考题目大变!

    近日,协会更新了2021年CFA二三级机考考试题目,跟纸质版考试大有不同! 2021年CFA二三级机考考试题目和纸质考试完全不一样. CFA二级划重点: 2021年CFA二级的考试题型与CFA一级是不 ...

  2. matlab symadd,信号调理器设计—大二暑期信号分析实习报告精选多篇

    第1篇第2篇第3篇第4篇第5篇更多顶部 目录 第一篇:信号调理器设计-大二暑期信号分析实习报告 第二篇:大二暑期信号分析实习报告 第三篇:传感器信号调理电路 第四篇:信号调理电路 第五篇:信号实习报告 ...

  3. 大二数据结构实验(迪杰斯特拉最短路径)

    大二数据结构实验,有详细批注,代码可以直接运行,希望可以给大家提供到帮助. 实验目的 掌握图的邻接矩阵的存储定义. 掌握图的最短路径(Dijsktra)算法的实现. 实验内容 设计校园平面图,所含景点 ...

  4. 新视野大学英语4期末考试真题—集大内部期末机考原题—考试所有题目直接背答案—稳过

    注:集美大学新视野大学英语4机考真题,所有题目下载链接:https://share.weiyun.com/2QlxAuiW 注:以上只是其中一个的考试原题.绝对机考真题,切记请勿商用. 全部下载链接: ...

  5. 【数据结构】-大二数据结构与算法课程设计实训报告

    采花生问题 1.1 需求分析 1.1.1 题目概要 给一矩阵,按贪心思路最多能采多少花生并在规定时间内返回. 1.1.2 题目要求 给定一块花生田的大小和花生的分布,在限定时间内,小Q最多可以采到多少 ...

  6. 大二数据结构与算法实习

    大二小学期数据结构与算法实习PTA 12道数据结构题目题解和AC代码 时间:2022.08.15-2022.09.05 网课 第1题 范围查询(Range) 题目大意 数轴上有n个点,对于任一闭区间 ...

  7. 【华科考研复试机试题】华中科技大学考研复试机试题解题报告

    题目来源:牛客网华科考研复试题 以下代码均在牛客网提交通过.(编译器类型为G++5.4) 若以下题解思路有考虑欠缺处,望读者指正. 1.1. 矩阵转置 1.1.1. 题目描述 输入一个N*N的矩阵,将 ...

  8. 简易电子琴演奏器_北邮大二上数电实验报告

    一. 设计课题的任务要求 1.基本要求 1. 用8×8点阵显示"1 2 3 4 5 6 7"七个音符构成的电子琴键盘.其中点阵的第一列用一个 LED点亮表示音符"1&qu ...

  9. 2014哈商大ICPC/ACM校赛解题报告

    被debug邀请去參加校赛,哎,被虐..我对不起工大.. 由于本人不搞ACM,算法处于HelloWorld水准.. 虽然题目除了鸟不拉屎星人之外都非常水,但我能做到这个程度,全然是超水平发挥了.. 数 ...

最新文章

  1. python简笔画绘制 数据驱动绘图_pytorch visdom可视化工具学习—2—详细使用-2-plotting绘图...
  2. 推荐一款带暂停功能的轮播组件,不要谢我,我叫红领巾!
  3. ipython源代码怎么打开_CentOS 6.4 中IPython如何启动Qt控制台和NoteBook?
  4. 东北大学软件项目管理与过程改进_工程项目管理信息化实施方案
  5. Multi-thread--C++11多线程中std::call_once的使用
  6. 基础知识(十一)Eigen求解稀疏矩阵
  7. (22)VHDL实现比较器(二位数值)
  8. git bash 出现vim的时候怎么退出
  9. C++11常见新特性
  10. 数据结构与算法(Python)第三天
  11. jQuery学习笔记01
  12. Win10打开nvidia控制面板闪退怎么解决
  13. 微信JSSDK 音频下载speex转码问题
  14. 谨防企业管理者察人不慎,满盘皆输
  15. win11壁纸怎么可以动 Windows11秒变动态壁纸的设置方法
  16. XCode14 iOS16适配 pod签名
  17. 【PM模块】预防性维护
  18. 避难所Android闪退,iOS/安卓版《辐射:避难所》Fallout Shelter攻略:闪退进不去解决办法...
  19. python格式化千分位数字
  20. crc16的c语言函数 计算ccitt_使用C语言实现CRC校验的方法

热门文章

  1. 前端学习(3344):设计模式之工厂模式1
  2. React开发(133):ant design学习指南之form中input加前缀
  3. [css] 请问display:inline-block在什么时候会显示间隙?
  4. [css] border-radius:50%和border-radius:100%有什么区别?
  5. [js] 根据元素ID遍历树形结构,查找到所有父元素ID
  6. 前端学习(2629):npm安装成功配置
  7. 前端学习(2035)vue之电商管理系统电商系统之形成折线图
  8. oracle之基本的过滤和排序数据之课后练习
  9. 前端学习(1058):面向对象介绍
  10. linux防火墙查看被动模式,Centos7搭建vsftpd及被动模式下的防火墙设置