29个人里面有6个语文,6个数学,6个英语,4个物理,3个政治,3个历史,教语文的不能排监考语文,依次类推
3条回答 默认 最新
关注 你这不够29个老师啊,28个
答案不见了,算了,我给你多安排两个老师,你自己看着调整,不用的就可以删除
# 老师的科目用 ['科目'] 来表示,有几个就 * 几,1个可以不用 * s = ['语文'] * 6 + ['数学'] * 6 + ['英语'] * 6 + ['物理'] * 4 + ['政治'] * 3 + ['历史'] * 3 + ['体育'] + ['美术'] # 初始化老师信息 teachers = [{'tm':0,'科目':_,'监考科目':[]} for _ in s] # 初始化监考场次,这里也可以随便改 场次 = { '语文' : [13,120], '英语' : [16,100], '数学' : [16,100], '物理' : [8,60], '道法' : [8,60], '历史' : [8,50], '化学' : [8,50] } # 这里就不要动了 while len(场次) > 0: 科目 = list(场次.keys())[0] 场数,时间 = 场次[科目] teachers.sort(key = lambda x:x['tm']) used = 0 i = 0 while used < 场数: if teachers[i]['科目'] != 科目: # 这里是同科目不监考设置 teachers[i]['监考科目'].append(科目) teachers[i]['tm'] += 时间 used += 1 i += 1 del 场次[科目] # 按老师科目和监考时间排序 teachers.sort(key = lambda x:(x['科目'],x['tm']),reverse=True) # 输出信息 for i,teacher in enumerate(teachers): print('安排{},老师科目:{},监考科目:{},用时:{}'.format(i + 1,teacher['科目'],teacher['监考科目'],teacher['tm']))
安排1,老师科目:语文,监考科目:['英语', '数学', '化学'],用时:250 安排2,老师科目:语文,监考科目:['英语', '数学', '化学'],用时:250 安排3,老师科目:语文,监考科目:['英语', '数学'],用时:200 安排4,老师科目:语文,监考科目:['英语', '数学'],用时:200 安排5,老师科目:语文,监考科目:['英语', '数学'],用时:200 安排6,老师科目:语文,监考科目:['英语', '数学'],用时:200 安排7,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230 安排8,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230 安排9,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230 安排10,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230 安排11,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230 安排12,老师科目:英语,监考科目:['语文', '道法', '历史'],用时:230 安排13,老师科目:美术,监考科目:['数学', '物理', '道法'],用时:220 安排14,老师科目:物理,监考科目:['语文', '道法', '历史'],用时:230 安排15,老师科目:物理,监考科目:['英语', '数学'],用时:200 安排16,老师科目:物理,监考科目:['英语', '数学'],用时:200 安排17,老师科目:物理,监考科目:['英语', '数学'],用时:200 安排18,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230 安排19,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230 安排20,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230 安排21,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230 安排22,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230 安排23,老师科目:数学,监考科目:['语文', '物理', '化学'],用时:230 安排24,老师科目:政治,监考科目:['英语', '数学'],用时:200 安排25,老师科目:政治,监考科目:['英语', '数学'],用时:200 安排26,老师科目:政治,监考科目:['英语', '数学'],用时:200 安排27,老师科目:历史,监考科目:['英语', '数学'],用时:200 安排28,老师科目:历史,监考科目:['英语', '数学'],用时:200 安排29,老师科目:历史,监考科目:['英语', '数学'],用时:200 安排30,老师科目:体育,监考科目:['英语', '物理', '历史'],用时:210
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 wpf datagrid单元闪烁效果失灵
- ¥15 券商软件上市公司信息获取问题
- ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
- ¥15 Android studio AVD启动不了
- ¥15 陆空双模式无人机怎么做
- ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
- ¥15 C#中的编译平台的区别影响
- ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
- ¥15 电脑蓝屏logfilessrtsrttrail问题
- ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)