CF2074D.Counting Points

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

粉色士兵们在平面上绘制了 nn 个圆心位于 xx 轴上的圆。此外,他们告知这些圆的半径之和恰好为 mm ∗^{\text{∗}}。

请计算至少位于一个圆内或边界上的整数点数量。形式化地说,问题定义如下:

给定一个整数序列 x1,x2,…,xnx_1, x_2, \ldots, x_n 和一个正整数序列 r1,r2,…,rnr_1, r_2, \ldots, r_n,已知 ∑i=1nri=m\sum_{i=1}^n r_i = m。

你需要统计满足以下条件的整数对 (x,y)(x, y) 的数量:

  • 存在一个下标 ii 使得 (x−xi)2+y2≤ri2(x - x_i)^2 + y^2 \le r_i^2(1≤i≤n1 \le i \le n)。

∗^{\text{∗}} 这个信息真的有用吗?别问我,其实我也不知道。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt(1≤t≤1041 \le t \le 10^4)。接下来是每个测试用例的描述。

每个测试用例的第一行包含两个整数 nn 和 mm(1≤n≤m≤2⋅1051 \le n \le m \le 2 \cdot 10^5)。

每个测试用例的第二行包含 x1,x2,…,xnx_1, x_2, \ldots, x_n —— 圆的圆心坐标(−109≤xi≤109-10^9 \le x_i \le 10^9)。

每个测试用例的第三行包含 r1,r2,…,rnr_1, r_2, \ldots, r_n —— 圆的半径(1≤ri1 \le r_i,∑i=1nri=m\sum_{i=1}^n r_i = m)。

保证所有测试用例的 mm 之和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,在单独一行中输出满足条件的整数点数量。

输入输出样例

  • 输入#1

    4
    2 3
    0 0
    1 2
    2 3
    0 2
    1 2
    3 3
    0 2 5
    1 1 1
    4 8
    0 5 10 15
    2 2 2 2

    输出#1

    13
    16
    14
    52

说明/提示

在第一个测试用例中,半径为 r1=1r_1=1 的圆完全包含在半径为 r2=2r_2=2 的圆内部。因此只需统计后者内部的整数点数量。满足 x2+y2≤22x^2 + y^2 \le 2^2 的整数点共有 1313 个,因此答案为 1313。

在第二个测试用例中,半径为 r1=1r_1=1 的圆未完全包含在半径为 r2=2r_2=2 的圆内部。存在 33 个额外整数点位于第一个圆内但不在第二个圆内,因此答案为 3+13=163+13=16。

翻译由 DeepSeek R1 完成

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

首页