本题没有可用的提交语言。
题目描述
给定n个整数寄存器r1,r2,…,rn,我们定义一个比较交换指令CE(a,b),其中a,b是寄存器索引(1≤a<b≤n):
CE(a,b):
如果寄存器ra的内容大于rb的内容,则交换ra和rb的值。
一个比较交换程序(简称CE程序)是任意有限的比较交换指令序列。如果一个CE程序在执行后,寄存器r1始终包含所有寄存器中的最小值,则称该程序为最小值查找程序。如果该程序在删除任意一条CE指令后仍是最小值查找程序,则称其为可靠的。
给定一个CE程序P,问最少需要在程序P的末尾添加多少条指令,才能使其成为一个可靠的最小值查找程序?
示例
考虑以下针对3个寄存器的CE程序:
CE(1,2);CE(2,3);CE(1,2)。
为了使该程序成为可靠的最小值查找程序,只需添加两条指令:CE(1,3)和CE(1,2)。
任务
编写一个程序,对每个数据集:
读取CE程序的描述;
计算最少需要添加的CE指令数量;
输出结果。
输入格式
第一行输入一个正整数d,表示数据集的数量(1≤d≤10)。接下来是d个数据集。
每个数据集由两行组成:
第一行包含两个整数n和m,用空格分隔(2≤n≤10000,0≤m≤25000)。n是寄存器的数量,m是程序的指令数量。
第二行包含2m个整数,用空格分隔,表示程序本身。第2j−1和第2j位的整数aj和bj(1≤aj<bj≤n)是程序中第j条指令的参数。
输出格式
输出d行,每行一个整数,表示对应该数据集需要添加的最少指令数量。
输入样例 1
1
3 3
1 2 2 3 1 2
输出样例 1
2
来源
中欧 2001