十间教室 六门课程教室支持课程如图所示
要求举例说明
安排甲课程时 可选择 a b c d e五间教室
假如甲课程占用b c d e教室 还剩余a 教室空闲
安排乙课程能选三间教室 首选 f g 教室 但因a 教室空闲 所以自动 把甲课程某一项移入a教室 空出公共的教室以供 乙课程使用
以此类推 后者优先 当没有教室可分配时 提示 无法分配
求算法或思路技术不限 c# js 等等
描述不够详细和准确,也看不出要计算什么、、
已经重新描述
@男蝌蚪:刚看到,这么理解正确么:
1. 有若干教室,每个教室支持一些课程
2. 限定一些课程在某些教室(如甲课程在AB教室),自动计算出其它教室的课程,保证每个教室都有课且最大限度每个课程都有教室,若冲突不能保证每个课程有教室时提示?若有多种情况,如不同排课方法导致乙或丙无法排课,怎么处理?
3. 指定其中一个课程的教室,其余每个课程安排多少个教室不限?
@浴子风: 不是
还是我描述不对
假设初始化教室全部为空
这个时候我添加甲课程 他自动给我排一个教室
假设 甲课程 现在占用掉 bcde 四个教室 a教室 是空闲的
那么排乙课程的时候
乙课程就只能有三个选择 首选ef 其次 应该是调整甲课程的某一样 挪到a教室 腾出来一个位置给乙课程
是这样的一个逻辑
需求一 条件是 我传进去课程 给我反馈安排的教室 或者无教室可安排
需求二 我传进去课程和要上的次数 给我反馈安排的教室 或者无教室可安排
@男蝌蚪: 还是有点懵
前提:
1. 十间教室,六门课程。每一门课程只能再其中的几间教师中上,如图示意
要求:
1. 输入课程和次数,自动安排教室,或无法安排。如甲2次,乙1次,丙2次?
@浴子风: 假如说 有个方法叫ArrangeClassroom()
那么我应该是这样子调用的
ArrangeClassroom("甲课程",3) //甲课程3节课
ArrangeClassroom("乙课程",1) //乙课程1节课
我不明白的是如何调度的问题
安排甲课程时 可选择 a b c d e五间教室
假如甲课程占用b c d e教室 还剩余a 教室空闲
安排乙课程能选三间教室 首选 f g 教室 但因a 教室空闲
所以自动 把甲课程某一项移入a教室 空出公共的教室以供 乙课程使用
这样b才能选到3间教室
教室不够的话 就是提示不够
题目条件有点少吧? 如果没门课程只允许占用一间教室,6门课程10间教室 这么排都可以排下去 ~ 如果没门课程要求占用2间教室,这么排都排不下~
@浴子风: 假如说 有个方法叫ArrangeClassroom()
那么我应该是这样子调用的
ArrangeClassroom("甲课程",3) //甲课程3节课
ArrangeClassroom("乙课程",1) //乙课程1节课
我不明白的是如何调度的问题
安排甲课程时 可选择 a b c d e五间教室
假如甲课程占用b c d e教室 还剩余a 教室空闲
安排乙课程能选三间教室 首选 f g 教室 但因a 教室空闲
所以自动 把甲课程某一项移入a教室 空出公共的教室以供 乙课程使用
这样b才能选到3间教室
教室不够的话 就是提示不够
题主还在吗?这是经典的二分图匹配算法,题主可以自己去查找资料
嗯啊 刚看到 我现在大概知道怎么去匹配 但是我不知道怎么去挪动教室