class Course:
def __init__(self, name, teacher, room):
self.name = name
self.teacher = teacher
self.room = room
class Teacher:
def __init__(self, name, availability):
self.name = name
self.availability = availability # 可用时间段列表
class Room:
def __init__(self, number, capacity):
self.number = number
self.capacity = capacity
]]>
def assign_courses(courses, teachers, rooms):
schedule = {}
for course in courses:
assigned = False
for teacher in teachers:
if teacher.availability & course.time_slot: # 时间段交集检查
for room in rooms:
if room.capacity >= course.student_count and room not in schedule.values():
schedule[course] = (teacher, room)
teacher.availability -= course.time_slot
room.capacity -= course.student_count
assigned = True
break
if assigned:
break
return schedule
]]>
# 使用位运算优化时间冲突检测
def has_conflict(teacher_availability, course_time_slot):
return teacher_availability & course_time_slot == 0
]]>