#P8858. 折线

    ID: 7933 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>洛谷原创O2优化洛谷月赛双指针,two-pointer

折线

题目描述

平面直角坐标系的第一象限内有一块左下角为 (0,0)(0,0) 右上角为 (10100,10100)(10^{100},10^{100}) 的矩形区域,区域内有正偶数个整点,试求出这样一条从 (0,0)(0,0) 出发,到 (10100,10100)(10^{100},10^{100}) 的在区域内部的折线:

  • 折线的每一部分都平行于 xx 轴或 yy 轴。
  • 折线不能经过给定的整点。
  • 折线将整块区域分成包含给定整点个数相等的两块。
  • 折线拥有尽可能少的折点。

可以证明一定存在一条满足限制的折线,你只需要输出满足限制的折线的折点数即可。

注意折点的坐标可以不是整数。

输入格式

输入第一行一个正整数 TT,表示数据组数。

接下来的每组数据中,第一行一个正偶数 nn,表示给定的整点个数。

接下来 nn 行,第 ii 行两个正整数 xi,yix_i,y_i,表示给定的第 ii 个整点的坐标为 (xi,yi)(x_i,y_i)

输出格式

输出 TT 行,每行一个正整数,表示满足限制的折线的折点数。

3
4
1 1
1 2
4 1
4 2
6
1 2
1 3
2 1
2 2
2 3
3 2
12
1 3
2 2
2 3
2 4
3 1
3 2
3 4
3 5
4 2
4 3
4 4
5 3

2
3
4

提示

【样例解释】

对于第一组数据,一条合法的折线为:$(0,0) \to (2.5,0) \to (2.5,10^{100}) \to (10^{100},10^{100})$,它有 (2.5,0)(2.5,0)(2.5,10100)(2.5,10^{100}) 两个折点。

【数据范围】

测试点编号 nn \leq 特殊限制
121 \sim 2 44
343 \sim 4 1010
565 \sim 6 5050
787 \sim 8 10510^5 保证答案不大于 33
9109 \sim 10

对于所有数据,$1 \leq T \leq 10^4, 1 \leq \sum n \leq 5 \times 10^5, 1 \leq x_i,y_i \leq n$,保证 nn 为正偶数,每组数据中不存在两个坐标相同的整点。