CF2035D.Yet Another Real Number Problem

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

又一个实数问题

Three r there are's in strawberry.

(“strawberry”中有三个“r”)

给定一个长度为 mm 的数组 bb 。你可以进行以下操作任意次(可能为零次):

  • 选择两个不同的下标 ii 和 jj ,其中 1≤i<j≤m\bf{1\le i<j\le m} 且 bib_i 是偶数,将 bib_i 除以 22 ,并将 bjb_j 乘以 22 。

你的任务是通过任意次数的操作来最大化数组的和。因为结果可能会非常大,你需要输出该和对 109+710^9+7 取模的结果。

由于这个问题太简单了,所以现在你被给定了一个长度为 nn 的数组 aa,需要针对数组 aa 的每个前缀来求解该问题。

换句话说,记经过任意次数操作后 $ b $ 的最大和为 f(b)f(b) ,你需要分别输出 f([a1])f([a_1]) , f([a1,a2])f([a_1,a_2]) , …\ldots , f([a1,a2,…,an])f([a_1,a_2,\ldots,a_n]) 对 109+710^9+7 取模的结果。

输入格式

第一行包含一个整数 tt ( 1≤t≤1041\le t\le 10^4 ) — 测试用例数。

每个测试用例的第一行包含一个整数 nn ( 1≤n≤2⋅1051\le n\le 2\cdot 10^5 ) — aa 的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n ( 1≤ai≤1091\le a_i\le 10^9 ) — 数组 aa 的初始值。

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

输出格式

针对每个测试用例,输出 nn 个整数,表示每个前缀的答案,结果对 109+710^9+7 取模。

样例 #1

样例输入 #1

3
10
1 2 3 4 5 6 7 8 9 10
11
1 6 9 4 7 4 4 10 3 2 3
4
527792568 502211460 850237282 374773208

样例输出 #1

1 3 8 13 46 59 126 149 1174 1311 
1 7 22 26 70 74 150 1303 1306 1308 1568 
527792568 83665723 399119771 773892979 

输入输出样例

  • 输入#1

    3
    10
    1 2 3 4 5 6 7 8 9 10
    11
    1 6 9 4 7 4 4 10 3 2 3
    4
    527792568 502211460 850237282 374773208

    输出#1

    1 3 8 13 46 59 126 149 1174 1311 
    1 7 22 26 70 74 150 1303 1306 1308 1568 
    527792568 83665723 399119771 773892979

说明/提示

对于第一个测试用例中的每个前缀数组,操作后可能是:

  • [1][1] 和为 11
  • [1,2][1,2] 和为 33
  • [1,1,6][1,1,6] 和为 88
  • [1,1,3,8][1,1,3,8] 和为 1313
  • [1,1,3,1,40][1,1,3,1,40] 和为 4646
  • [1,1,3,1,5,48][1,1,3,1,5,48] 和为 5959
  • [1,1,3,1,5,3,112][1,1,3,1,5,3,112] 和为 126126
  • [1,1,3,1,5,3,7,128][1,1,3,1,5,3,7,128] 和为 149149
  • [1,1,3,1,5,3,7,1,1152][1,1,3,1,5,3,7,1,1152] 和为 11741174
  • [1,1,3,1,5,3,7,1,9,1280][1,1,3,1,5,3,7,1,9,1280] 和为 $ 1311 $​

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

首页