CF2005D.Alter the GCD

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

给定两个数组 a1,a2,…,ana_1, a_2, \ldots, a_n 和 b1,b2,…,bnb_1, b_2, \ldots, b_n。

你必须恰好执行一次如下操作:

  • 选择任意下标 ll 和 rr,满足 1≤l≤r≤n1 \le l \le r \le n;
  • 对所有满足 l≤i≤rl \leq i \leq r 的 ii,交换 aia_i 和 bib_i。

请你在恰好执行一次操作后,求 gcd⁡(a1,a2,…,an)+gcd⁡(b1,b2,…,bn)\gcd(a_1, a_2, \ldots, a_n) + \gcd(b_1, b_2, \ldots, b_n) 的最大可能值,并统计有多少不同的 (l,r)(l, r) 对能够达到最大值。

输入格式

输入的第一行包含一个整数 tt(1≤t≤1051 \le t \le 10^5),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5),表示每个数组中的元素个数。

接下来一行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1091 \le a_i \le 10^9),表示数组 aa 的元素。

最后一行包含 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(1≤bi≤1091 \le b_i \le 10^9),表示数组 bb 的元素。

所有测试用例中 nn 的总和不超过 5⋅1055 \cdot 10^5。

输出格式

对于每个测试用例,输出一行两个整数,分别表示在恰好执行一次操作后,gcd⁡(a1,a2,…,an)+gcd⁡(b1,b2,…,bn)\gcd(a_1, a_2, \ldots, a_n) + \gcd(b_1, b_2, \ldots, b_n) 的最大值,以及达到最大值的 (l,r)(l, r) 对的数量。

输入输出样例

  • 输入#1

    5
    8
    11 4 16 17 3 24 25 8
    8 10 4 21 17 18 25 21
    4
    6 4 24 13
    15 3 1 14
    2
    13 14
    5 8
    8
    20 17 15 11 21 10 3 7
    9 9 4 20 14 9 13 1
    2
    18 13
    15 20

    输出#1

    2 36
    3 2
    2 3
    2 36
    6 1

说明/提示

在第 1、3、4 个测试用例中,无法使任一数组的最大公约数大于 11,因此答案为 1+1=21 + 1 = 2。任意一组 (l,r)(l, r) 都能达到相同的结果,例如在第 1 个测试用例中共有 3636 组这样的 (l,r)(l, r)。

在最后一个测试用例中,必须选择 l=1l = 1,r=2r = 2 才能使答案最大,此时第一个数组的最大公约数为 55,第二个数组的最大公约数为 11,因此答案为 5+1=65 + 1 = 6,且方案数为 11。

由 ChatGPT 4.1 翻译

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

首页