问题 6672 --土豪依伊

6672: 土豪依伊★★★

时间限制: 1 Sec  内存限制: 256 MB
提交: 24  解决: 8
[提交][状态][命题人:]

题目描述

土豪依伊家有n个房屋,编号自1到n围成一个圆圈。
对于编号为1≤i≤n−1的房子,i与i+1是邻居,此外,房子n和房子1也是邻居。
最初n个房子中有m个房屋被致命的病毒感染。每天早上,依伊都可以选择一个未受感染的房子,并永久保护房屋免受感染。
每天,以下事情都会按顺序发生:
1、依伊选择了一个未受感染的房子,并永久保护它。
2、所有未受感染、未受保护的房屋,只要至少有一个受感染的邻居,就会被感染。
依伊希望阻止病毒传播。如果她最优地选择要保护的房屋,请找到最终将被感染的最小房屋数量。
请注意,每天依伊总是在病毒传播之前选择要保护的房子。此外,受保护的房屋不会永远被感染。

输入

输入由多个测试用例组成。第一行包含一个整数t(1≤t≤1e4),表示测试用例的数量。
每个测试用例的第一行有两个正整数n,m(5≤n≤1e9, 1≤m≤min(n,1e5)),n是圆圈上的房屋数量,m是最初被感染的房屋数量。
每个测试用例的第二行是m个不同的正整数a1,a2,⋯,am(1≤ai≤n) ,即最初受感染的房屋的编号。
可以保证所有测试用例中m的和不超过1e5。

输出

对于每个测试用例,在单独的行上输出一个整数,即最终受感染房屋的最小数量。

样例输入
Copy
8
10 3
3 6 8
6 2
2 5
20 3
3 7 12
41 5
1 11 21 31 41
10 5
2 4 6 8 10
5 5
3 2 5 4 1
1000000000 1
1
1000000000 4
1 1000000000 10 16
样例输出
Copy
7
5
11
28
9
5
2
15

提示

注:
在第一个测试用例中:
第一天开始时,房子3,6,8被感染。选择房子2保护。
第二天开始时,房子3,4,5,6,7,8,9被感染。选择房子10保护。
在第三天开始时,没有更多的房屋被感染。

在第二个测试用例中:
第一天开始时,房子2,5被感染。选择房子1保护。
第二天开始时,房子2,3,4,5,6被感染。没有更多的可用房屋可以得到保护。

来源

 

[提交][状态]