atcoder#ABC282D. [ABC282D] Make Bipartite 2

[ABC282D] Make Bipartite 2

配点 : 400400

問題文

NN 個の頂点と MM 本の辺からなる単純な(すなわち、自己ループも多重辺も含まない)無向グラフ GG が与えられます。 i=1,2,,Mi = 1, 2, \ldots, M について、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結びます。

1u<vN1 \leq u \lt v \leq N を満たす整数の組 (u,v)(u, v) であって、下記の 22 つの条件をともに満たすものの個数を出力してください。

  • グラフ GG において、頂点 uu と頂点 vv を結ぶ辺は存在しない。
  • グラフ GG に、頂点 uu と頂点 vv を結ぶ辺を追加して得られるグラフは、二部グラフである。
二部グラフとは?

無向グラフが二部グラフであるとは、下記の条件を満たすように各頂点を黒または白のどちらかの色で塗ることができることを言います。

  • 同じ色に塗られた頂点どうしを結ぶ辺は存在しない。

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • $0 \leq M \leq \min \lbrace 2 \times 10^5, N(N-1)/2 \rbrace$
  • 1ui,viN1 \leq u_i, v_i \leq N
  • グラフ GG は単純
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

出力

答えを出力せよ。

5 4
4 2
3 1
5 2
3 2
2

問題文中の条件を満たす整数の組 (u,v)(u, v) は、(1,4)(1, 4)(1,5)(1, 5)22 つです。よって、22 を出力します。 他の組については、例えば、(1,3)(1, 3) はグラフ GG において頂点 11 と頂点 33 を結ぶ辺が存在することから、 (4,5)(4, 5) はグラフ GG に頂点 44 と頂点 55 を結ぶ辺を追加して得られるグラフが二部グラフではないことから、 それぞれ問題文中の条件を満たしません。

4 3
3 1
3 2
1 2
0

与えられるグラフが二部グラフであったり連結であるとは限らないことに注意してください。

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