#CF1472G. 前往首都

前往首都

前往首都

  • 时间限制:5 秒
  • 内存限制:256 MiB

题目描述

给定一张有 nn 个顶点、mm 条边的有向图,所有边长度均为 11,并保证从顶点 11 可以到达每个顶点。令 did_i 表示从顶点 11 到顶点 ii 的最短距离。

从一个顶点开始沿有向边行走。对于边 u→vu\to v:若 du<dvd_u<d_v,可以经过任意多次;若 du≥dvd_u\ge d_v,整条行走路径中至多经过一次这类边。

对每个起点 ii,求所有可以到达的顶点 vv 中 dvd_v 的最小值。

输入格式

第一行包含测试用例数 tt。

每个测试用例的第一行包含两个整数 n,mn,m。接下来 mm 行,每行包含两个整数 u,vu,v,表示一条有向边 u→vu\to v。

输出格式

对每个测试用例输出一行 nn 个整数,第 ii 个整数为从顶点 ii 出发能到达的顶点中最小的 dd 值。

样例输入 1

3
6 7
1 2
1 3
2 5
2 4
5 1
3 6
6 2
2 2
1 2
2 1
6 8
1 2
1 5
2 6
6 1
2 3
3 4
4 2
5 4

样例输出 1

0 0 1 2 0 1
0 0
0 0 2 1 1 0

数据范围

对于所有数据,1≤t≤1041\le t\le10^4,2≤n,m≤2×1052\le n,m\le2\times10^5,1≤u,v≤n1\le u,v\le n;所有测试用例的 nn 之和、mm 之和均不超过 2×1052\times10^5。

子任务编号 分值 特殊限制
1 20 每个测试用例均满足 n≤10n\le10 且 m≤30m\le30
2 40 每个测试用例均满足 n,m≤2000n,m\le2000
3 无特殊限制