编程题
防线修建 ### 题目描述 近来A国和B国的矛盾激化,为了预防不测,A 国准备修建一条长长的防线,当然修建防线的话,肯定要把需要保护的城市修在防线内部了。 可是A国上层现在还犹豫不决,到底该把哪些城市作为保护对象呢?又由于 A 国的经费有限,所以希望你能帮忙完成如下的一个任务: 1、给出你所有的 A 国城市坐标 2、A国上层经过讨论,考虑到经济问题,决定取消对 $u$ 城市的保护,也就是说 $u$ 城市不需要在防线内了 3、A国上层询问对于剩下要保护的城市,修建防线的总经费最少是多少 你需要对每次询问作出回答。注意单位长度的防线花费为 $1$。 A 国的地形是这样的,形如下图,$x$ 轴是一条河流,相当于一条天然防线,不需要你再修建。 ![图片描述](https://doc.shiyanlou.com/courses/uid1580206-20210430-1619773094241) A 国总是有两个城市在河边,一个点是 $(0,0)$,一个点是 $(n,0)$,其余所有点的横坐标均在 $(0,n)$ 范围内,纵坐标均大于0。 A国有一个不在 $(0,0)$ 和 $(n,0)$ 的首都。$(0,0),(n,0)$ 和首都这三个城市是一定需要保护的。 上图中,A,B,C,D,E 点为 A 国城市,且目前都要保护,那么修建的防线就会是 A-B-C-D,花费也就是线段 AB 的长度+线段 BC 的长度+线段 CD 的长度,如果,这个时候撤销 B 点的保护,那么防线变成下图 ![图片描述](https://doc.shiyanlou.com/courses/uid1580206-20210430-1619773116452) ### 输入描述 第一行三个整数 $n,x,y$ 分别表示河边城市和首都是 $(0,0),(n,0),(x,y)$。 第二行一个整数 $m$。 接下来 $m$ 行,每行两个整数 $a,b$ 表示 A 国的一个非首都非河边城市的坐标为 $(a,b)$。 再接下来一个整数 $q$,表示修改和询问总数。 接下来 $q$ 行每行要么形如 `1 u`,要么形如 `2`,分别表示撤销第 $u$ 个城市的保护和询问。 其中,$1\le m \le 10^5$,$1\le q \le 2 \times 10^5$,$1 < n \le 10^4$。 ### 输出描述 对于每个询问输出一行一个实数 $v$,表示修建防线的花费,保留两位小数。 ### 输入输出样例 #### 示例 1 >输入 ```txt 4 2 1 2 1 2 3 2 5 2 1 1 2 1 2 2 ``` >输出 ```txt 6.47 5.84 4.47 ```
查看答案
赣ICP备20007335号-2