问题思考:
- 首先,若所有的计划(plan)中的节点都可达,则输出 Okay
,
否则输出 Impossible。注意:这里的“plan”判断的是整个图(这里是有向图)上的节点,而不只是那K个queries节点。若存在环,则必然在经历一趟拓扑排序之后,还有留存节点未能遍历到,即判断环内有节点不可达。 - 其次,每个query对应输出最佳plan,要求S(score )最少的基础上多争取D(voucher)。这里的麻烦在于,如何化成一个单源最短路问题(这里显然可能存在多个
节点是没有前置要求的,即“You may take test i directly”的,即“多源”的最短路)?—— 一个技巧性的做法就是,额外设置一个起点(与所有
节点直接相连),并求该点到整个图上的节点的单源最短路问题。
- 并用一个Last数组在每选出一条最短路边的时候记录上个节点,