我有一个房间,每周开放几天,每天在不同的时间(7:00-14:42,...)
我有多个学生,每个人都可以在不同的日子、不同的时间参观房间(学生可能有时间在多天内参观房间)
我需要按照以下规则将所有(或最多)学生分配到房间:
- 每个学生每周必须访问房间一次,时间为 50 分钟
- (仅)第二个学生进入房间后,房间将在接下来的 20 分钟内不可用
第二条规则的例子:
+---------------+-----------------+
| TIME | INFO |
+---------------+-----------------+
| 7:00 - 7:50 | Student 1 |
| 7:50 - 8:40 | Student 2 |
| 8:40 - 9:00 | Mandatory break | // No student may be here
| 9:00 - 9:50 | Student 3 |
| 9:50 - 10:40 | Student 4 |
| 10:40 - 11:30 | Student 5 |
| . . . | . . . |
+---------------+-----------------+
我该如何解决这个问题?我曾想过在网络中使用流,但我遇到了一个问题。
假设我有这个流程。当学生连接到时间时,流程应该通过所有包含时间的组。如果这些组中的任何一个被占用,则流量无法流向那里。因此,当学生连接到时间时,所有可能与学生时间重叠的时间都将被禁用。但我不知道如何建立一个允许这样做的算法。
你能告诉我如何制作一个算法来完成这项工作吗?我不知道该怎么做。谢谢!