#D1009. 隔层朋友

隔层朋友

题目描述

33DAI 的班里有 nn 个同学,编号从 11 到 nn。班里有 mm 对朋友,朋友关系是相互的,同一对同学至多出现一次。

对每个同学 uu,33DAI 想知道:有多少个同学 vv 满足下面两个条件?

  • uu 和 vv 不是朋友;
  • 存在一个同学 ww,使得 uu 和 ww 是朋友,且 vv 和 ww 也是朋友。

换句话说,uu 和 vv 之间隔着恰好一个同学。

输入格式

第一行两个整数 nn 和 mm。

接下来 mm 行,每行两个整数 u,vu, v(1≤u<v≤n1 \le u < v \le n),表示 uu 和 vv 是朋友。

输出格式

输出一行 nn 个整数,相邻两个整数之间用一个空格隔开,第 uu 个整数表示与 uu 隔着恰好一个同学的人数。

4 2
1 2
2 3
1 0 1 0

样例 1 解释

  • 11 号同学和 22 号是朋友;22 号还和 33 号是朋友,所以 11 号与 33 号隔着同学 22,11 号的答案是 11。
  • 22 号的朋友是 11 号和 33 号,没有"隔一个人"的同学,答案是 00。
  • 33 号与 11 号隔着同学 22,答案是 11。
  • 44 号谁也不认识,答案是 00。
6 6
1 2
2 3
3 4
4 5
5 6
1 6
2 2 2 2 2 2

样例 2 解释

这 66 个同学围成一个环。以 11 号为例:11 号的朋友是 22 号和 66 号,22 号的朋友还有 33 号、66 号的朋友还有 55 号,所以 11 号与 33 号、55 号都隔着恰好一个同学,答案是 22。其余同学同理,答案都是 22。

样例 3

见 hop3.in 与 hop3.ans。

样例 4

见 hop4.in 与 hop4.ans。

数据范围

对于全部测试数据,保证:

  • 1≤n≤50001 \le n \le 5000;
  • $0 \le m \le \min\left(5000, \frac{n(n-1)}{2}\right)$;
  • 每条朋友关系满足 1≤u<v≤n1 \le u < v \le n,且同一对同学至多出现一次。

子任务

本题共 20 个测试点,按测试点计分:

测试点 分值 每个测试点 特殊限制
1∼61 \sim 6 3030 55 n≤20n \le 20
7∼127 \sim 12 n≤500n \le 500,图为链、菊花、环等特殊形状
13∼2013 \sim 20 4040 无额外限制

每个测试点单独评分,全部测试点的得分之和即为本题得分。