有若干所学校连接到一个计算机网络。这些学校之间达成了一些协议:每所学校维护一份分发软件的学校列表(“接收学校”)。请注意,如果学校 A 的分发列表中包含学校 B,那么学校 B 的列表中不一定会出现学校 A。
你需要编写一个程序,计算为了使软件根据协议覆盖网络中的所有学校,必须接收新软件的最小学校数量(子任务 A)。
作为进一步的任务,我们希望确保通过将新软件的副本发送到任意一所学校,该软件将覆盖网络中的所有学校。为了实现这个目标,我们可能需要通过新增成员来扩展接收者的列表。计算必须进行的最小扩展次数,以确保无论我们将新软件发送到哪所学校,它都能覆盖所有其他学校(子任务 B)。一次扩展意味着在一所学校的接收者列表中引入一个新成员