#ABC051D. Candidates of No Shortest Paths

Candidates of No Shortest Paths

题目描述

You are given an undirected connected weighted graph with NN vertices and MM edges that contains neither self-loops nor double edges.
The ii-th (1iM)(1≤i≤M) edge connects vertex aia_i and vertex bib_i with a distance of cic_i.
Here, a self-loop is an edge where ai=bi(1iM)a_i = b_i (1≤i≤M), and double edges are two edges where (ai,bi)=(aj,bj)(a_i,b_i)=(a_j,b_j) or (ai,bi)=(bj,aj)(1i<jM)(a_i,b_i)=(b_j,a_j) (1≤i \lt j≤M).
A connected graph is a graph where there is a path between every pair of different vertices.
Find the number of the edges that are not contained in any shortest path between any pair of different vertices.

给你一个无向连接加权图,图中有 NN 个顶点和 MM 条边,图中既没有自循环也没有双重边。
ii -th (1iM)(1≤i≤M) 条边连接顶点 aia_i 和顶点 bib_i ,距离为 cic_i
这里, ai=bi(1iM)a_i = b_i (1≤i≤M) 所在的边为_self-loop_, (ai,bi)=(aj,bj)(a_i,b_i)=(a_j,b_j)(ai,bi)=(bj,aj)(1i<jM)(a_i,b_i)=(b_j,a_j) (1≤i \lt j≤M) 所在的两条边为_double edges_。
连接图是指每对不同顶点之间都有一条路径的图。
请找出不包含在任何一对不同顶点之间的最短路径中的边的数目。

输入格式

输入内容按以下格式标准输入:

NN MM
a1a_1 b1b_1 c1c_1
a2a_2 b2b_2 c2c_2
::
aMa_M bMb_M cMc_M

输出格式

打印图中不包含在任何一对不同顶点之间的最短路径中的边的数量。

样例 #1

样例输入 #1

3 3
1 2 1
1 3 1
2 3 3

样例输出 #1

1

样例 #2

样例输入 #2

3 2
1 2 1
2 3 1

样例输出 #2

0

样例 #3

样例输入 #3


样例输出 #3


说明

数据规模与约定

  • 2N1002≤N≤100
  • N1Mmin(N(N1)/2,1000)N-1≤M≤min(N(N-1)/2,1000)
  • 1ai,biN1≤a_i,b_i≤N
  • 1ci10001≤c_i≤1000
  • cic_i 是整数。
  • 给定图形既不包含自循环,也不包含双边。
  • 给定图形是连通的。

样例 11 解释

在给定的图中,所有不同顶点对之间的最短路径如下:

  • 从顶点 11 到顶点 22 的最短路径是:顶点 11 →顶点{743648236},其长度为{743648236}。→ 顶点 22 ,长度为 11
  • 从顶点 11 到顶点 33 的最短路径是:顶点 11 →顶点{73670751}。→ 顶点 33 ,长度为 11
  • 从顶点 22 到顶点 11 的最短路径是:顶点 22 →顶点{40543226}。→ 顶点 11 ,长度为 11
  • 从顶点 22 到顶点 33 的最短路径是:顶点 22 →顶点{x3243109}。→ 顶点 11 → 顶点 33 ,长度为 22
  • 从顶点 33 到顶点 11 的最短路径是:顶点 33 →顶点{x 11 。→ 顶点 11 ,路径长为 11
  • 从顶点 33 到顶点 22 的最短路径是:顶点 33 →顶点{x243941}。顶点 11 →顶点 22 。→ 顶点 22 ,长度为 22

因此,唯一一条不包含在任何最短路径中的边是连接顶点 22 和顶点 33 的长度为 33 的边,因此输出应该是 11

样例 22 解释

每一条边都包含在一对不同顶点之间的最短路径中。