资源简介 15.有n位员工申请m个培训项目。每位员工对项目有志愿顺序;每个项目对员工进行匹配度评估得到具体分值,分值均不相同。每个项目最多录取cp位员工,项目可以不满员,员工也可以不被录取培训项目录取规则如下:依次处理每位员工,依照其志愿顺序尝试录取。若当前志愿的项目未招满,则拟录取该员工。若已招满,则当前员工与该项目拟录取员工中匹配度最低者进行比较:①若当前员工匹配度更高,则拟录取该员工,匹配度最低者被淘汰并等待下次处理;②若当前员工匹配度更低,则对当前员工的下一志愿项目尝试录取.直到所有员工都已被拟录取或者未被拟录取员工所有志愿均已尝试,录取过程结束。例如,有3位员工(用大写字母表示)和3个项目(用正整数表示),每个项目最多录取2位员工。各员工的志愿顺序如第15题图a所示,各项目的员工匹配度如第15题图b所示。录取过程如下:员工A被项目3拟录取→员工B被项目3拟录取→员工C被项目3拟录取(员工B被淘汰)→员工B被项目1拟录取。录取结束,结果为:项目1录取B,项目2没有录取员工,项目3录取A和C.员工编号员工编号志愿顺序项目编号ABCA项目3,项目2,项目11718293B项目3,项目1,项目22889690C项目3,项目1,项目23786989第15题图a第15题图b请回答下列问题:(1)若员工B的志愿顺序修改为“项目2,项目1,项目3”,按上述规则进行录取,则员工B的录取结果是▲(单选,填字母:A.被项目1录取/B.被项目2录取/C.未被录取)。(2)定义如下sel(a,s,st0函数,参数a表示某项目已拟录取的员工,参数s表示该项目的员工匹配度,参数sf表示当前待录取员工。员工编号“A”~“Z”用0~25表示.def sel(a,s,stf):idx =0for j in range(1,len(a)):if s[a[j]]idx=jif s[a[idx]]return idxelse:return -1调用sel函数,若a值为[2,31,s值为[90,80,85,70],stf值为1,则函数返回的结果为▲一。(单选,填字母:A.-1/B.0/C.1/D.2)技术·第5页(共11页) 展开更多...... 收起↑ 资源预览