软件设计师模拟试题

  else output(dep);

  path[dep]:=0; {回溯}

  a[nowpoint,next]:=1; a[next,nowpoint]:=1;

  end;

  begin

  init; {初始化,求边数等}

  for first:=1 to max do {分别从各个顶点出发,尝试一笔画}

  fillchar(path,sizeof(path),0);

  path[0]:=first; {记录其起始的顶点}

  writeln('from point ',first,':');readln;

  find(1,first); {从起始点first,一条边一条边地画下去}

  end.

  银行家算法其实是很普通的但是比较经典的算法,每本OS的书上都讲的,主要用来防止产生死锁的,

  形象的讲:银行发放贷款(对不同的客户,有分期贷的)不能使有限可用资金匮乏而导致整个银行无法运转,也就是说每次请求贷款时,银行要考虑他能否凭着贷款完成项目还清贷款使银行运转正常,

  (借用flyingcoolhwak写的步骤)

  令Request(i)是进程P(i)请求向量,如果Request(i)[j]=k,则进程P(i)希望请求j类资源k个。

  算法步骤如下:

  1、如果Request(i)>Need(i)则出错(请求量超过申报的最大量),否则转2、

  2、如果Requdst(i)>Available则P(i)等待,否则转3、

  3、系统对P(i)所请求的资源实施试探分配,更改数据结构中的数值

  4、Available<-Available-Request(i)

  Allocation(i)<-Allocation(i)+Request(i)

  Need(i)<-Need(i)-Request(i)

  5、执行安全性算法(如下),如果是安全的则承认试分配,否则废除试分配,让进程P(i)等待

  货郎担问题

  问题描述

  欧几里德货郎担问题是对平面给定的n个点确定一条连结各点的、闭合的游历路线问题。图1(a)给出了七个点问题的解。Bitonic旅行路线问题是欧几里德货郎担问题的简化,这种旅行路线先从最左边开始,严格地由左至右到最右边的点,然后再严格地由右至左到出发点,求路程最短的路径长度。图1(b)给出了七个点问题的解。

  请设计一种多项式时间的算法,解决Bitonic旅行路线问题

关注本地宝
返回首页

推荐排行

最新阅读


反馈