4495: 绳子切割

内存限制:256 MB 时间限制:4 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

Nanarikom 正在切割绳子。

Nanarikom 有一根横梁(使用编号 00 表示)和 nn 个苹果(使用编号 11 到 nn 表示),并且使用 mm 根绳子将它们连接,每根绳子的两端分别连接一个编号在 [0, n][0,n] 内的物品。

如果一个苹果可以经过若干绳子与横梁直接或间接连接,则这个苹果处于悬挂状态。初始状态下,所有苹果都处于悬挂状态。Nanarikom 可以按任意顺序依次切割绳子,被切割的绳子将不再构成连接。如果某一次切割操作后,编号为 ii 的苹果不再处于悬挂状态,则这个苹果会落在地上。

Nanarikom 想要知道,是否存在一种切割绳子的顺序,使得苹果落地的编号顺序单调递减,且不存在某一时刻有多于一个苹果同时落地。

你需要回答 Nanarikom 的 TT 组询问。

输入格式

第一行包含一个整数 TT1 \leq T \leq 10^41T104),代表测试数据组数。对于每组测试数据:

  • 第一行包含两个整数 nnmm1 \leq n \leq 10^51n105n \leq m \leq \min(10^5, \frac{n(n+1)}{2})nmmin(105,2n(n+1))),分别代表苹果和绳子的数量;
  • 接下来的 mm 行中,第 ii 行包含两个整数 u_iuiv_ivi0 \leq u_i, v_i \leq n0ui,vinu_i \neq v_iui=vi),代表第 ii 根绳子连接 u_iui 和 v_ivi

输入数据保证,至多只有 2020 组测试数据使得 m > 100m>100

输入数据保证,初始状态下,所有苹果都处于悬挂状态。

输出格式

对于每组测试数据,输出一行一个整数,如果存在可行方案,输出 11;否则输出 00

输入样例 复制

2
2 2
0 1
1 2
3 4
0 3
0 2
3 1
2 1

输出样例 复制

1
0