309047: CF1616G. Just Add an Edge
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Just Add an Edge
题意翻译
给定一个 DAG,边一定从编号小的点连向编号大的点,求有多少对 $(x,y)$ 使得 $x>y$ 且添加 $(x,y)$ 这条边后的图存在哈密顿路径。题目描述
You are given a directed acyclic graph with $ n $ vertices and $ m $ edges. For all edges $ a \to b $ in the graph, $ a < b $ holds. You need to find the number of pairs of vertices $ x $ , $ y $ , such that $ x > y $ and after adding the edge $ x \to y $ to the graph, it has a Hamiltonian path.输入输出格式
输入格式
The first line of input contains one integer $ t $ ( $ 1 \leq t \leq 5 $ ): the number of test cases. The next lines contains the descriptions of the test cases. In the first line you are given two integers $ n $ and $ m $ ( $ 1 \leq n \leq 150\,000 $ , $ 0 \leq m \leq \min(150\,000, \frac{n(n-1)}{2}) $ ): the number of vertices and edges in the graph. Each of the next $ m $ lines contains two integers $ a $ , $ b $ ( $ 1 \leq a < b \leq n $ ), specifying an edge $ a \to b $ in the graph. No edge $ a \to b $ appears more than once.
输出格式
For each test case, print one integer: the number of pairs of vertices $ x $ , $ y $ , $ x > y $ , such that after adding the edge $ x \to y $ to the graph, it has a Hamiltonian path.
输入输出样例
输入样例 #1
3
3 2
1 2
2 3
4 3
1 2
3 4
1 4
4 4
1 3
1 4
2 3
3 4
输出样例 #1
3
1
4