AT_qupc2014_g.立ち入り禁止区域

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

你是一名警察,负责的地区被划分为几种类型的区块,所有区块都是长方形且与坐标轴平行。某天,收到了一起恐怖袭击的预告。袭击只针对生活区块。炸弹爆炸的影响范围是圆形的。由于你的同事非常优秀,所有炸弹的安装位置和爆炸威力(即爆炸半径)都已知。然而,由于时间紧迫,无法拆除炸弹。为了让市民撤离,需要设定一个禁止进入区域。禁止进入区域应包含所有与炸弹爆炸范围重叠的生活区块,并且为一个连通区域。由于炸弹威力可能有一定误差,即使炸弹爆炸范围与生活区块仅仅相切,该生活区块也必须包含在禁止进入区域中。你的任务是准备用于显示禁止进入区域的设备。所有炸弹会同时爆炸,设备是一次性的,即使被炸毁也没关系。设备的数量取决于外周的长度,因此希望外周长度尽可能小。请计算当禁止进入区域的外周长度最小时,这个最小外周长度是多少。输入格式如下所示。

NN MM Cx0Cx_0 Cy0Cy_0 Cr0Cr_0 …… CxN−1Cx_{N-1} CyN−1Cy_{N-1} CrN−1Cr_{N-1} Bx0Bx_0 By0By_0 Bw0Bw_0 Bh0Bh_0 …… BxM−1Bx_{M-1} ByM−1By_{M-1} BwM−1Bw_{M-1} BhM−1Bh_{M-1}

以城市的左右为 xx 轴,上下为 yy 轴,上和右为正方向。炸弹数量为 NN,区块数量为 MM,每个炸弹的位置为 (Cx,Cy)(Cx, Cy),爆炸半径为 CrCr。每个生活区块的左下顶点为 (Bx,By)(Bx, By),左右长度为 BwBw,上下长度为 BhBh。输入中的所有变量均为整数,且满足以下约束条件:

  • 1≤N≤1001 \leq N \leq 100
  • 1≤M≤1001 \leq M \leq 100
  • −10000≤Cxi,Cyi,Bxi,Byi≤10000-10000 \leq Cx_i, Cy_i, Bx_i, By_i \leq 10000
  • 1≤Cri,Bhi,Bwi≤10001 \leq Cr_i, Bh_i, Bw_i \leq 1000

满足以下约束的情况可获得 80 分:

  • N=1N = 1
  • M=1M = 1
  • −100≤Cxi,Cyi,Bxi,Byi≤100-100 \leq Cx_i, Cy_i, Bx_i, By_i \leq 100
  • 1≤Cri,Bhi,Bwi≤1001 \leq Cr_i, Bh_i, Bw_i \leq 100

请输出禁止进入区域的外周长度 ll,保留一行。输出的绝对误差需不超过 10−310^{-3}。

1 1
1 1 1
2 0 2 2
8

1 2
2 3 2
2 0 2 2
1 3 1 1
11.9907

1 2
1 3 1
0 0 3 2
1 5 2 2
10

输入格式

第一行包含两个整数 NN 和 MM,分别表示炸弹的数量和生活区块的数量。

接下来 NN 行,每行包含三个整数 CxiCx_i、CyiCy_i、CriCr_i,表示第 ii 个炸弹的位置和爆炸半径。

接下来 MM 行,每行包含四个整数 BxiBx_i、ByiBy_i、BwiBw_i、BhiBh_i,表示第 ii 个生活区块的左下顶点坐标、宽度和高度。

输出格式

输出一行,表示禁止进入区域的最小外周长度 ll。输出的绝对误差需不超过 10−310^{-3}。

说明/提示

无。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页