试题详情

试题内容

阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
在一块电路板的上下两端分别有n个接线柱。根据电路设计,用(i,π(i))表示将上端接线柱i与下端接线柱π(i)相连,称其为该电路板上的第i条连线。如图4-1所示的π(i)排列为{8,7,4,2,5,1,9,3,10,6}。对于任何1≤iπ(j)。
在制作电路板时,要求将这n条连线分布到若干绝缘层上,在同一层上的连线不相交。现在要确定将哪些连线安排在一层上,使得该层上有尽可能多的连线,即确定连线集Nets={(i,π(i)),1≤i≤n}的最大不相交子集。

【分析问题】
记N(i,j)={t|(t,π(t))∈Nets,t≤i,π(t)≤j}。N(i,j)的最大不相交子集为MNS(i,j),size(i,j)=|MNS(i,j)|。
经分析,该问题具有最优子结构性质。对规模为n的电路布线问题,可以构造如下递归式:

【C代码】
下面是算法的C语言实现。
(1)变量说明
size[i][j]:上下端分别有i个和j个接线柱的电路板的第一层最大不相交连接数
pi[i]:π(i),下标从1开始
(2)C程序   #include"stdlib.h"
#include
#define N   10         /*问题规模*/
Int m=0;            /*记录最大连接集合中的接线柱*/
Void maxNum(intpi[],intsize[N+1][N+1],intn){/*求最大不相交连接数*/
int i,j;
for(j=0;j for(j=pi[i];j<=n;j++)(1); /*当j>=π(1)时*/
for(i=2;i for(j=0;j for(j=pi[i];j<=n;j++) { /*当j>=c[i]时,考虑两种情况*/
size[i][j]=size[i-l][j]>=size[i-l][pi[i]-l]+1?size[i-l][j]:
size[i-l][pi[i]-l]+l;
}
}
/*最大连接数*/
size[n][n]=size[n-l][n]>=size[n-l][pi[n]-l]+1?size[n-l][n]:size[n-l][pi[n]-l]+l:
}
/*构造最大不相交连接集合,net[i]表示最大不相交子集中第i条连线的上端接线柱的序号*/
void constructSet(int pi[],int size[N+1][N+1],int n,int net[n]){
int i,j=n;
m=0;
for(i=n;i>1;i--)     {/*从后往前*/
if(size[i][j]!=size[i-l][j]){/*(i,pi[i])是最大不相交子集的一条连线*/
(3);                 /*将i记录到数组net中,连接线数自增1*/
j=pi[i]-1;             /*更新扩展连线柱区间*/
}
}
if(j>=pi[l])net[m++]=l;         /*当i=1时*/
}
【问题1】(6分)
根据以上说明和C代码,填充C代码中的空(1)~(3)。
【问题2】(6分)
根据题干说明和以上C代码,算法采用了(4)算法设计策略。
函数maxNum和constructSet的时间复杂度分别为(5)和(6)(用O表示)。
【问题3】(3分)
若连接排列为{8,7,4,2,5,1,9,3,10,6},即如图4-1所示,则最大不相交连接数为(7),包含的连线为(8)(用(i,π(i))的形式给出)。
查看答案

软题库参考答案:暂时没有答案(仅供参考)

软题库解析:正在加载....

你可能感兴趣的试题

5题:阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某文件管理系统中定义了类OfficeDoe和DocExplorer。当类OfficeDoe发生变化时,类DocExplorer的所有对象都要更新其自身的状态。现采用观察者(Observer) 设计模式来实现该需求,所设计的类图如图6-1所示。

【Java代码】

2题:

试题二(共15分)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某宾馆为了有效地管理客房资源,满足不同客户需求,拟构建一套宾馆信息管理系统,以方便宾馆管理及客房预订等业务活动。
【需求分析结果】
该系统的部分功能及初步需求分析的结果如下:
(1)宾馆有多个部门,部门信息包括部门号、部门名称、电话、经理。每个部门可以有多名员工,每名员工只属于一个部门;每个部门只有一名经理,负责管理本部门。
(2)员工信息包括员工号、姓名、岗位、电话、工资,其中,员工号唯一标识员工关系中的一个元组,岗位有经理、业务员。
(3)客房信息包括客房号(如1301、1302等)、客房类型、收费标准、入住状态(已入住/未入住),其中客房号唯一标识客房关系中的一个元组,不同客房类型具有不同的收费标准。
(4)客户信息包括客户号、单位名称、联系人、联系电话、联系地址,其中客户号唯一标识客户关系中的一个元组。
(5)客户预订客房时,需要填写预订申请。预订申请信息包括
2题:

试题二
某电视台拟开发一套信息管理系统,以方便对全台的员工、栏目、广告和演播厅等进行管理。
[需求分析]
系统需要维护全台员工的详细信息、栏目信息、广告信息和演播厅信息等。员工的信息主要包括:工号、姓名、性别、出生日期、电话、住址等。栏目信息主要包括:栏目名称、播出时间、时长的呢过。广告信息主要包括:广告编号、价格等。演播厅信息包括:房间号、房间面积等。
电视台分局调度单来协调各档栏目、演播厅和场务。一销售档栏目只会占用一个演播厅,但会使用多名场务来进行演出协调。演播厅和场务可以被多个栏目循环使用。
电视台根据栏目来插播广告。每档栏目可以插播多条广告,每条广告也可以在多档栏目插播。
一档栏目可以有多个主持人,但一名支持人只能支持一档栏目。
一名编辑人员可以编辑多条广告,一条广告只能由一名编辑人员编辑。
[概念模型设计]
根据需求阶段收集的信息设计的实体联系图(不完整)如图所示。
1题:【说明】
某房产中介连锁企业欲开发一个基于Web的房屋中介信息系统,以有效管理房源和客户,提高成交率。该系统的主要功能是:
1.房源采集与管理。系统自动采集外部网站的潜在房源信息,保存为潜在房源。由经纪人联系确认的潜在房源变为房源,并添加出售/出租房源的客户。由经纪人或客户登记的出售/出租房源,系统将其保存为房源。房源信息包括基本情况、配套设施、交易类型、委托方式、业主等。经纪人可以对房源进行更新等管理操作。
2.客户管理。求租/求购客户进行注册、更新,推送客户需求给经纪人,或由经纪人对求租/求购客户进行登记、更新。客户信息包括身份证号、姓名、手机号、需求情况、委托方式等。
3.房源推荐。根据客户的需求情况(求购/求租需求情况以及出售/出租房源信息),向已登录的客户推荐房源。
4.交易管理。经纪人对租售客户双方进行交易信息管理,包括订单提交和取消,设 置收取中介费比例。财务人员收取中介费之后,表示该订单已完成,系统更新订单状态和 房源状态,向客户和经纪人发送交易反馈。
5.信息查询。客户根据自身查询需求查询房屋供需信息。
1题:

试题一
阅读以下说明以及数据流图,回答问题1至问题5。
【说明】
某银行已有一套基于客户机/服务器模式的储蓄系统A和一套建账软件。建账软件主要用于将储蓄所手工处理的原始数据转换为系统A所需的数据格式。该建账软件具有以下功能。
(1)分户账录入:手工办理业务时建立的每个分户账数据均由初录员和复录员分别录入,以确保数据的正确性。
(2)初录/复录比对:将初录员和复录员录入的数据进行一一比较,并标记两套数据是否一致。
(3)数据确认:当上述两套数据完全一致后,将其中任一套作为最终进入系统A的原始数据。
(4)汇总核对和打印:对经过确认的数据进行汇总,并和会计账目中的相关数据进行核对,以确保数据的整体正确性,并打印输出经过确认的数据,为以后核查可能的错误提供依据。
(5)数据转换:将经过确认的数据转换为储蓄系统A需要的中间格式数据。
(6)数据清除:为加快初录和复录的处理速度,在数据确认之后,可以有选择地清除初录员和复录员录入的数据。
该软件的数据流图如图10-1至图10-3所示。图中部
2题:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某公司拟开发一多用户电子邮件客户端系统,部分功能的初步需求分析结果如下:
(1)邮件客户端系统支持多个用户,用户信息主要包括用户名和用户密码,且系统中的用户名不可重复。
(2)邮件帐号信息包括邮件地址及其相应的密码,一个用户可以拥有多个邮件地址  (如userl@123.com)。
(3)一个用户可拥有一个地址薄,地址簿信息包括联系人编号、姓名、电话、单位、地址、邮件地址1、邮件地址2、邮件地址3等信息。地址薄中一个联系人只能属于一个用户,且联系人编号唯一标识一个联系人。
(4)一个邮件帐号可以含有多封邮件,一封邮件可以含有多个附件。邮件主要包括邮件号、发件人地址、收件人地址、邮件状态、邮件主题、邮件内容、发送时间、接收时间。其中,邮件号在整个系统内唯一标识一封邮件,邮件状态有己接收、待发送、已发送和已删除4种,分别表示邮件是属于收件箱、发件箱、己发送箱和废件箱。一封邮件可以发送给多个用户。附件信息主要包括附件号、附件文件名、附件大小。一个附件