P3649.第3题-网格染色
题目内容
有一条长度为n的一维网格(编号为1~n)。初始时,所有网格均为白色。从第1~m秒,每一秒结束前会给出一个整数at,表示将编号为at的网格手动染成黑色。
同时,过程按秒进行、且在m秒之后也继续进行:在每一秒开始时,所有已经为黑色的网格会同时将其左右相邻(编号相差为1)的白色网格染成黑色(若相邻位置不存在则忽略)。
请计算:最少经过多少秒结束时,所有网格都被染成黑色。
你需要输出满足“在第t秒结束时全黑”的最小t。
输入描述
每个测试文件均包含多组测试数据。第一行输入一个整数
T(1≦T≦104)代表数据组数,每组测试数据描述如下:
第一行输入两个整数n,m(1≦n≦109;1≦m≦2×105)表示网格长度与手动染色的次数;
第二行输入m个整数a1,a2,...,am(1≦ai≦n)表示第t秒结束前手动染黑的网格编号。
除此之外,保证单个测试文件的m之和不超过2×105。
输出描述
对于每一组测试数据,新起一行,输出一个整数,表示在第t秒结束时全体网格变黑所需的最少秒数
样例1
输入
2
5 1
3
10 2
2 9
输出
3
5
说明
初始全白。
对于样例一:
- 第1秒结束前手动将3染黑;
- 第2秒开始扩散为{2,3,4};
- 第3秒开始扩散为{1,2,3,4,5},于是第3秒结束时全黑,答案为3。
对于样例二:
- 第2秒结束时黑格为{1,2,3,9};第5秒开始时两端扩散连通覆盖至全体,故第5秒结束时全黑,答案为5。