- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上海交大计算机考研复试机试.pdf
我自己在准备考研时曾做了下06 ,07 ,08,09 年的题目,并且在博客中提供了一个参考的
题解,10 年的题目以及11 年保研的题目有空我会再做做,毕竟现在上研了没多少时间研究
这些,祝大家考出个好成绩,支持王道论坛()交大版。
解答请关注我的个人博客。这个PDF 文档里的参考答案不是我给出的,有些代码是是有问题
的,但思路是正确的。
我可能近期内会把历年题目做一个分类,并全部提供一个参考的题解和程序,哪位获得较高
初试分数正在备战复试的同学可以与我联系,binlong@
另外本次重新整理这些题目的时候,基本上都加了一些个人的注解和思路,如果有不对或欠
妥的地方或者你有更好的想法,请你与我联系,谢谢!
靖难()2011 年2 月18
2005 年上机试题
问题1:
网上回忆版的原文如下
太恐怖了,
12 翻一下是21 对吗?
34 翻一下是43 对吗?
12+34 是46 对吗?46 翻一下是64 对吗?
现在给你21 与43 ,把64 输出就可以了。
我猜题目的大概意思是给定整数a,b,若reverse(a)+reverse(b)==reverse(a+b)则输出a+b,否则
输出NO
总之这应该是一道颇为简单的题目,鉴于交大喜欢使用NOIP 原题作为复试题,类似的题目
作为练习我推荐一道NOIP 题目
/Problem_148.html
问题2:
给你一串路径,譬如
a\b\c
a\d\e
b\cst
d\
你把这些路径中蕴涵的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右
缩一格,就象这样
a
b
c
d
E
b
cst
d
同一级的需要按字母顺序排列,不能乱。
为了方便看清题目意思,我划表格表达了一下层次关系。本题其实关键是找到合适的数据结
构来存储
初步思考了一下,可以考虑使用有序的N 叉树来存储,第一层目录的你节点记为0,然后使
用类似于先序遍历的方式来遍历,用一个全局变量来记录当前递归深度,并控制空格数量。
有空我会试写一下代码。
问题3.
回忆版原文如下:
这题听说有点问题。反正大概意思是这样的(除非我理解错了):
有一个x[6][6] 任意的 0=i,j=5 1=x[i][j]=10;
现在有一个起始位置i1,j1 与一个结束位置i2,j2 。
请找出一条从i1,j1 到i2,j2 的总代价最小的路径。
1. 只能沿上下左右四个方向移动
2. 总代价是每走一步的代价之和
3. 每步(从a,b 到c,d) 的代价是x[c][d]与其在a,b 处状态的乘积
4. 初始状态(在i1,j1 时的状态)是1,每走一步,状态按如下公式变化
(走这步的代价 % 4)+1
也就是状态只有4 种:1,2,3 or 4.
这个问题类似于棋盘遍历或者迷宫问题,可以使用DFS (回溯法)求解,基本的伪代码如下:
全局参数说明:
使用二维数组G 保存棋盘,与回忆版中的x 功能相同
变量x,y 分别表示当前位置
St_x,St_y 表示起始位置
Des_x,Des_y 表示终点位置
二维数组go[0..3,0..1] 中1..4 表示四个方向,0 表示某个方向时x 的变化值,1 表示往某个方
向时y 的变化值
比如go[0][0]表示向右走时x 的增量
Min 记录当前最小代价,二维数组path 用于记录当前最小代价路径
Sum_cost 用于求总代价和
代码如下,使用类pascal:
procedure dfs(k:integer);
var i:integer;
begin
if (x=Des_x) and (y=Des_y) then 如果到达目的地
begin
if sum_costmin then 如果当前路径代价总和更小则更新之
begin
min:=sum_cost;
for i:=0 to k-1 do 保存当前最小代价的路径
begin
path[i][0]:=a[i]
文档评论(0)