首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
现有A,B两队人要过河,河上有船,但是每次只能乘坐4个人,并且每次乘客满员才能开船,到河对岸后空船返回。由于某种原因,过河时船上不能同时有三个A队人员、一个B队人员或者一个A队人员、三个B队人员的组合(即其他组合是安全的)。请编写程序,用PV操作正确解决A
现有A,B两队人要过河,河上有船,但是每次只能乘坐4个人,并且每次乘客满员才能开船,到河对岸后空船返回。由于某种原因,过河时船上不能同时有三个A队人员、一个B队人员或者一个A队人员、三个B队人员的组合(即其他组合是安全的)。请编写程序,用PV操作正确解决A
admin
2014-07-18
52
问题
现有A,B两队人要过河,河上有船,但是每次只能乘坐4个人,并且每次乘客满员才能开船,到河对岸后空船返回。由于某种原因,过河时船上不能同时有三个A队人员、一个B队人员或者一个A队人员、三个B队人员的组合(即其他组合是安全的)。请编写程序,用PV操作正确解决A,B两队人过河的问题,并说明所设置的信号量及其初值。
选项
答案
int m=4; //信号量,初始值为4 Embark(A){ //登船函数 P(m); A.embark(); } Sail(){ //开船 go(); V(m);V(m);V(m);V(m); } while(true){ if(t==0){ int t=4; //记录已经登船人数 int i:0; //记录A登船人数,4时不允许同类再登船 int j=0; //记录B登船人数,4时不允许同类再登船 } while(team.hasNext()){ ready=team.next(); if(ready= =A){ if(i= =4)continue; //防止3和1的情况 else{ t--: j++; Embark(ready); } } if(i= =3 Il(i= =2&&j= =1))j=4; //防止3和1的情况 if(j= =3 lI(j= =2&&i= =1))i=4; //防止3和1的情况 if(t= =0){ Sail(); break; } } team.relnit(); //整理等候队列 }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/xaxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
马丁.路德提出“信仰耶稣即可得救”的原则,其意义在于()
1957年,在()的西汉早期墓葬中,发现过一些用麻类纤维制成的残纸,据认为这是世界上已知的最早的人造纸片。
下列著作被人们称为17世纪物理学、数学的百科全书,并标志着经典力学体系的完成的是()。
维也纳会议争论的焦点问题是()。
中国古代的移民主要有两个大的流向:或者由北方草原内迁人中原,或者由中原迁入江南,这两大迁移最主要的影响是()。
汉灵帝中平元年(184),()在7州28郡同时俱起,这是中国历史上第一次组织、准备比较严密的农民起义。
最早把印度绘在大西洋对岸的地理学家是()。
汉章帝会群儒于白虎观,讨论经义,由()写成《白虎通德论》(又称《白虎通义》、《白虎通》)一书,这部书系统地吸收了阴阳五行和谶纬之学,形成今文经学派的主要观点。
西周的官僚制度已经相当完备,官僚机构庞杂,职官名目繁多。周王室的官僚机构分为两大系统,分别是()。
某一个计算机系统采用虚拟页式存储管理方式,当前在处理机上执行的某一个进程的页表如下所示,所有的数字均为十进制,每一项的起始编号是0,并且所有的地址均按字节计址,每页的大小为1024字节。(1)计算下列逻辑地址转换为物理地址,并说明为什么
随机试题
因考虑到加工划线的困难,有些畸形大型工件在毛坯上设计一些工艺孔或凸缘,这样可以方便加工和划线。( )
排卵是指哪些结构一起随卵泡液自卵巢排入到盆腔的过程
原发性急进性肾炎进入慢性期的主要治疗为
某市2009年底进行棚户区改造。房屋拆迁补偿方式,棚户区业主可以选择房屋产权调换或货币补偿。选择房屋产权调换方式的,被拆迁房屋与调换房屋面积相等部分不补差价,超面积按单价2800元/m2补交房款。刘某将其在该棚户区的房屋出租给李某,房屋登记簿上记载的该房屋
收料单、领料单、工资费用分配表、折旧计算表都属于通用凭证。()
相较于有形资产,无形资产所固有的特性不包括()。
跨国公司的决策体系是()。
()对于血液循环相当于引擎对于()
心理学把人的个性分为16种不同的类型。据说笔迹学家依据一个人的笔迹可以判断他或她的个性类型。这种说法没有多少道理。最近有这样一个实验,要求一个笔迹学家和一个普通人依据50个专业工作者的笔迹来分别判断其职业,结果前者的正确率并不比后者高。以下哪项是上述论证所
在窗体上添加一个名称为Command1的命令按钮,然后编写如下程序:PrivateSubf(ByValxAsInteger)x=x+4EndSubPrivateSubCommand1_Click()i=
最新回复
(
0
)