CF1795G.Removal Sequences

省选/NOI-

通过率:0%

时间限制:4.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a simple undirected graph, consisting of nn vertices and mm edges. The vertices are numbered from 11 to nn. The ii-th vertex has a value aia_i written on it.

You will be removing vertices from that graph. You are allowed to remove vertex ii only if its degree is equal to aia_i. 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,…,pnp_1, p_2, \dots, p_n (1≤pi≤n)(1 \le p_i \le n) such that the ii-th vertex to be removed is pip_i, and every removal is allowed.

A pair (x,y)(x, y) of vertices is nice if there exist two valid sequences of removals such that xx is removed before yy in one of them and yy is removed before xx in the other one.

Count the number of nice pairs (x,y)(x, y) such that x<yx \lt y.

给你一个简单的无向图,包含 nn 个顶点和 mm 条边。顶点编号为 11 到 nn。第 ii 个顶点上写有一个值 aia_i。

你将从该图中逐个删除顶点。仅当顶点 ii 的度数等于 aia_i 时,才允许删除它。当一个顶点被删除时,所有与之关联的边也会被同时删除,从而使得与其相邻且尚未被删除的顶点的度数减少。

一个合法的删除序列是一个排列 p1,p2,…,pnp_1, p_2, \dots, p_n(其中 1≤pi≤n1 \le p_i \le n),表示第 ii 个被删除的顶点是 pip_i,且每次删除操作均满足上述条件。

若存在两个合法的删除序列,使得在其中一个序列中顶点 xx 在 yy 之前被删除,而在另一个序列中 yy 在 xx 之前被删除,则称顶点对 (x,y)(x, y) 是友好的(nice)。

请计算满足 x<yx \lt y 的友好对 (x,y)(x, y) 的数量。

输入格式

The first line contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of testcases.

The first line of each testcase contains two integers nn and mm (1≤n≤1051 \le n \le 10^5; 0≤m≤min⁡(105,n⋅(n−1)2)0 \le m \le \min(10^5, \frac{n \cdot (n - 1)}{2})) — the number of vertices and the number of edges of the graph.

The second line contains nn integers a1,a2,…,ana_1, a_2, \dots, a_n (0≤ai≤n−10 \le a_i \le n - 1) — the degree requirements for each removal.

Each of the next mm lines contains two integers vv and uu (1≤v,u≤n1 \le v, u \le n; v≠uv \neq u) — the description of an edge.

The graph doesn't contain any self-loops or multiple edges.

The sum of nn over all testcases doesn't exceed 10510^5. The sum of mm over all testcases doesn't exceed 10510^5.

Additional constraint on the input: there always exists at least one valid sequence of removals.

第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4)——测试用例的数量。

每个测试用例的第一行包含两个整数 nn 和 mm(1≤n≤1051 \le n \le 10^5;0≤m≤min⁡(105,n⋅(n−1)2)0 \le m \le \min(10^5, \frac{n \cdot (n - 1)}{2}))——图中顶点数和边数。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(0≤ai≤n−10 \le a_i \le n - 1)——每次移除操作对应的度数要求。

接下来的 mm 行,每行包含两个整数 vv 和 uu(1≤v,u≤n1 \le v, u \le n;v≠uv \neq u)——一条边的描述。

该图不含自环或重边。

所有测试用例的 nn 之和不超过 10510^5;所有测试用例的 mm 之和不超过 10510^5。

输入的额外约束:总存在至少一个合法的移除序列。

输出格式

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

输入解题思路,AI测评打分。不知道怎么写?

首页