CF2152D.Division Versus Addition

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

对于一个长度为 mm 的数组 b=[b1,b2,…,bm]b=[b_1,b_2,\ldots,b_m](bi≥2b_i \geq 2),考虑由 Poby 和 Rekkles 进行的如下二人游戏:

  • 两位玩家轮流行动,Poby 先手。
  • 在 Poby 的回合,他必须选择一个 x≥2x \ge 2 的元素,将其替换为 ⌊x2⌋\left\lfloor \frac{x}{2} \right\rfloor。也就是说,他选择 ii(1≤i≤m1 \leq i \leq m)且 bi≥2b_i \ge 2,然后执行 bi:=⌊bi2⌋b_i := \left\lfloor \frac{b_i}{2} \right\rfloor。
  • 在 Rekkles 的回合,他必须选择数组 bb 中的一个 x≥2x \ge 2,并将其替换为 x+1x+1。也就是说,他选择 ii(1≤i≤m1 \leq i \leq m)且 bi≥2b_i \ge 2,然后执行 bi:=bi+1b_i := b_i+1。

当且仅当数组 bb 中所有元素都为 11 时,游戏结束。

定义游戏的分数为 Poby 所做的操作次数。Poby 的目标是最小化分数,而 Rekkles 的目标是最大化分数。

对于数组 bb,其值定义为在双方都采取最优策略时,此游戏的分数。

现在给定一个长度为 nn 的整数数组 aa(ai≥2a_i \ge 2)。

需要回答 qq 个独立的查询。每个查询给定一个范围 1≤l≤r≤n1 \leq l \leq r \leq n,你需要求出数组 [al,al+1,…,ar][a_l, a_{l+1}, \ldots, a_r] 的值。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试数据组数。每组数据描述如下:

每组测试数据的第一行包含两个整数 nn 和 qq(1≤n,q≤250 0001 \le n, q \le 250\,000),分别表示数组 aa 的长度和查询的个数。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(2≤ai≤1092 \le a_i \le 10^9),表示数组 aa 的元素。

接下来的 qq 行,每行包含两个整数 ljl_j 和 rjr_j(1≤lj≤rj≤n1 \le l_j \le r_j \le n),分别表示第 jj 个查询的子数组范围。

保证所有测试数据中 nn 的总和不超过 250 000250\,000。

保证所有测试数据中 qq 的总和不超过 250 000250\,000。

输出格式

对于每个测试数据,请输出 qq 行答案。对于每个查询,输出一个整数,表示对应子数组的值。

输入输出样例

  • 输入#1

    2
    5 5
    4 3 2 5 6
    1 1
    1 2
    2 4
    3 5
    1 5
    10 1
    314 159 265 358 979 323 846 264 338 327
    1 10

    输出#1

    2
    3
    5
    6
    10
    91

说明/提示

第一组数据,第一个查询(1 1)的解释如下:

子数组为 [4][4]。

  1. Poby: 4→⌊42⌋=24 \to \left\lfloor \tfrac{4}{2}\right\rfloor = 2。数组变为 [2][2]。
  2. Rekkles: 2→32 \to 3。数组变为 [3][3]。
  3. Poby: 3→⌊32⌋=13 \to \left\lfloor \tfrac{3}{2}\right\rfloor = 1。数组变为 [1][1],游戏结束。

可以证明,这种策略对双方都是最优的。因此,数组 [4][4] 的值为 22。

第一组数据,第二个查询(1 2)的解释如下:

子数组为 [4,3][4,3]。

  1. Poby: 3→⌊32⌋=13 \to \left\lfloor \tfrac{3}{2}\right\rfloor=1。数组变为 [4,1][4,1]。
  2. Rekkles: 4→54 \to 5。数组变为 [5,1][5,1]。
  3. Poby: 5→⌊52⌋=25 \to \left\lfloor \tfrac{5}{2}\right\rfloor=2。数组变为 [2,1][2,1]。
  4. Rekkles: 2→32 \to 3。数组变为 [3,1][3,1]。
  5. Poby: 3→⌊32⌋=13 \to \left\lfloor \tfrac{3}{2}\right\rfloor=1。数组变为 [1,1][1,1],游戏结束。

可以证明,这种策略对双方都是最优的。因此,数组 [4,3][4,3] 的值为 33。

由 ChatGPT 5 翻译

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

首页