A116498.道路规划(road)
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:512MB
题目描述
【题目背景】
小A所在的岛上一共有n座城市,城市之间一共有m条单向道路连接。保证这些道路不会形成环路,也就是不存在从某座城市出发,经过一系列的道路最终又回到原点的情形。
出于某种原因,小A需要从起点城市s前往城市t,可能会有许多种不同的路径。小A想知道途径的可能的城市(除s,t外)中,哪一个城市对他是最重要的,换句话说,从s到t的所有路径中,需要经过哪个城市的路径条数最多。
【题目描述】
给定一个n个点m条边的有向无环图,所有点的编号从1到n,给出一个起点s和一个终点t,求出一个点ans,使得经过ans的从s到t的路径条数最多。
输出这个点ans和具体的路径数,如果有多个点经过的数相同,取编号最小的那个;如果s不能到达t,或从s到t的路径中不可能途经其他点,输出−1。
输入格式
输入的第一行包含4个整数,分别为n,m,s,t。表示点数、边数、起点和终点。
接下来m行,每行2个整数u,v,表示存在一条从u到v的有向路径。
输出格式
输出仅1行。如果s不可达,或中间不能途经其他点,输出−1;否则输出两个数字,表示最重要的点的编号和经过它的路径条数。
输入输出样例
输入#1
5 10 15 1 2 3 13 4 14 5 15 6 23 7 24 8 25 9 34 10 35 11 45
输出#1
1 24
说明/提示
【样例解释】
样例图如下,起点是 1,终点是 5:

经过 2 的路径最多,一共有 4 条:
{1,2,3,5},{1,2,4,5},{1,2,5},{1,2,3,4,5}。所有从 1 出发到达 5 的路径中,经过其他点的路径均小于 4。比如,经过 3 的路径只有 3 条{1,2,3,5},{1,3,5},{1,3,4,5}。
【数据范围】
对于所有测试数据保证:1≤n≤104,1≤m≤5×105,保证不会出现重边和自环。保证s到t的路径条数不超过263−1。
| 测试点 | n≤ | m≤ | 特殊性质 |
|---|---|---|---|
| 1~2 | 10 | 30 | 无 |
| 3~4 | 15 | 45 | 无 |
| 5 | 102 | 3×102 | A |
| 6~7 | 102 | 3×102 | 无 |
| 8~9 | 60 | 3×103 | C |
| 10 | 103 | 3×103 | B |
| 11~13 | 103 | 5×103 | 无 |
| 14~15 | 104 | 5×104 | 无 |
| 16 | 104 | 5×105 | B |
| 17~20 | 104 | 5×105 | 无 |
特殊性质A:保证有且仅有一个点入度为0、出度为1;有且仅有一个点入度为1、出度为0,其余所有点入度出度均为1。
特殊性质B:除起点s和终点t外,所有点的出度和入度均为1。
特殊性质C:m=2n(n−1)。