CF1795G.Removal Sequences
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a simple undirected graph, consisting of n vertices and m edges. The vertices are numbered from 1 to n . The i -th vertex has a value ai written on it.
You will be removing vertices from that graph. You are allowed to remove vertex i only if its degree is equal to ai . When a vertex is removed, all edges incident to it are also removed, thus, decreasing the degree of adjacent non-removed vertices.
A valid sequence of removals is a permutation p1,p2,…,pn (1≤pi≤n) such that the i -th vertex to be removed is pi , and every removal is allowed.
A pair (x,y) of vertices is nice if there exist two valid sequences of removals such that x is removed before y in one of them and y is removed before x in the other one.
Count the number of nice pairs (x,y) such that x<y .
输入格式
The first line contains a single integer t ( 1≤t≤104 ) — the number of testcases.
The first line of each testcase contains two integers n and m ( 1≤n≤105 ; 0≤m≤min(105,2n⋅(n−1)) ) — the number of vertices and the number of edges of the graph.
The second line contains n integers a1,a2,…,an ( 0≤ai≤n−1 ) — the degree requirements for each removal.
Each of the next m lines contains two integers v and u ( 1≤v,u≤n ; v=u ) — the description of an edge.
The graph doesn't contain any self-loops or multiple edges.
The sum of n over all testcases doesn't exceed 105 . The sum of m over all testcases doesn't exceed 105 .
Additional constraint on the input: there always exists at least one valid sequence of removals.
输出格式
For each testcase, print a single integer — the number of nice pairs of vertices.
输入输出样例
输入#1
4 3 2 1 0 1 2 3 1 2 3 3 1 2 0 1 2 2 3 1 3 5 6 3 0 2 1 0 1 2 4 1 4 2 3 4 2 3 5 1 1 0 0
输出#1
1 0 4 0