CF2035D.Yet Another Real Number Problem
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
又一个实数问题
Three r there are's in strawberry.
(“strawberry”中有三个“r”)
给定一个长度为 m 的数组 b 。你可以进行以下操作任意次(可能为零次):
- 选择两个不同的下标 i 和 j ,其中 1≤i<j≤m 且 bi 是偶数,将 bi 除以 2 ,并将 bj 乘以 2 。
你的任务是通过任意次数的操作来最大化数组的和。因为结果可能会非常大,你需要输出该和对 109+7 取模的结果。
由于这个问题太简单了,所以现在你被给定了一个长度为 n 的数组 a,需要针对数组 a 的每个前缀来求解该问题。
换句话说,记经过任意次数操作后 $ b $ 的最大和为 f(b) ,你需要分别输出 f([a1]) , f([a1,a2]) , … , f([a1,a2,…,an]) 对 109+7 取模的结果。
输入格式
第一行包含一个整数 t ( 1≤t≤104 ) — 测试用例数。
每个测试用例的第一行包含一个整数 n ( 1≤n≤2⋅105 ) — a 的长度。
第二行包含 n 个整数 a1,a2,…,an ( 1≤ai≤109 ) — 数组 a 的初始值。
保证所有测试用例中 n 的总和不超过 2⋅105 。
输出格式
针对每个测试用例,输出 n 个整数,表示每个前缀的答案,结果对 109+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
- [1,2] 和为 3
- [1,1,6] 和为 8
- [1,1,3,8] 和为 13
- [1,1,3,1,40] 和为 46
- [1,1,3,1,5,48] 和为 59
- [1,1,3,1,5,3,112] 和为 126
- [1,1,3,1,5,3,7,128] 和为 149
- [1,1,3,1,5,3,7,1,1152] 和为 1174
- [1,1,3,1,5,3,7,1,9,1280] 和为 $ 1311 $
输入解题思路,AI测评打分。不知道怎么写?