车站分级1
题目信息
见链接
解题思路
这道题可以用拓扑排序2。
把题意简化一下,就是:
如果你停靠了一个站点,所有等级大于等于这个站点的站点都要停靠,反过来也就是所有起始站和终点站中间没有停靠的站点的等级一定是小于停靠的站点。
所以我们把起点到终点所有没停靠的站点
和所有停靠的站点
连成边,然后拓扑排序
,输出最后一个(入度最大的)顶点的入度(即题目所要求的分级)。
C + + \operatorname C++ C++ 代码如下 3
#include <bits/stdc++.h>
using namespace std;
struct rec {
int number, level;
};
int n, m, a[10010], graph[3010][3010], inDegree[10010], head[4000010], ver[4000010], Next[4000010]