bzoj#P3775. 点和直线

点和直线

题目描述

你需要实现以下三种操作:

  • 平面上加入一条直线;
  • 删除一条已加入的直线;
  • 求一个点到平面上所有直线距离平方和最小,你需要输出这个最小值。

输入格式

11 行包含一个整数 nn,表示了操作数目。接下来 nn 行操作属于下列 33 种格式之一:

格式一:0 x1 y1 x2 y2。插入直线操作,插入一条过 (x1,y1)(x_1, y_1)(x2,y2)(x_2, y_2) 的直线,保证两点不重合,坐标为实数(最多两位小数)并且绝对值不超过 100100

格式二:1 k。删除直线操作,删除第 ii 次插入操作所插入的直线,保证已经被删除的直线不会再被删除(即任意 22 次操作 kk 值均不同),并且 kk 不大于之前插入操作的次数。

格式三:2。查询操作,查询所要求的最小值。

输出格式

输出行数等于查询操作的次数,每行输出每次查询操作所要求的最小值,保留两位小数。

10
0 0.0 0.0 1.0 0.0
2
0 0 1 1 1
2
0 0 2 1 2
2
1 2
2
1 3
2
0.00
0.50
2.00
2.00
0.00

数据规模与约定

对于 100%100\% 的数据,n1.2×105n \le 1.2 \times 10^5