CF2053C.Bewitching Stargazer
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
「我祈祷能拥有一颗透明的心,以及一双满含泪水的眼睛...」
—— 逃跑计划,《夜空中最亮的星》
Iris 仰望星空时,脑海中产生了一个有趣的问题。她希望你能帮忙解决这个问题,据说这样能引发一场流星雨。
夜空中有 n 颗星星,排列成一行。Iris 拿着望远镜来观察这些星星。
最初,她观察整个区间 [1,n],此时她的幸运值为 0。为了找到每个观察区间 [l,r] 中的中间星星,Iris 开始了以下的递归过程:
- 首先,她计算中点位置 m=⌊2l+r⌋。
- 如果区间长度(即 r−l+1)是偶数,则她将该区间分成两个长度相等的子区间 [l,m] 和 [m+1,r],继续观察。
- 如果是奇数,则她会将望远镜对准第 m 颗星星,幸运值增加 m;之后,如果 l=r,她会继续观察新产生的两个区间 [l,m−1] 和 [m+1,r]。
Iris 有点懒,并以一个整数 k 表示她的懒惰阈值:在观察过程中,任何长度严格小于 k 的区间 [l,r] 她都不会再继续观察。请你预测她最终的幸运值会是多少。
输入格式
输入包含多组测试用例。第一行是一个整数 t(1≤t≤105),代表测试用例的数量。接下来每组测试用例每行包括两个整数 n 和 k(1≤k≤n≤2⋅109)。
输出格式
对每一个测试用例,输出一个整数,表示最终的幸运值。
输入输出样例
输入#1
6 7 2 11 3 55 13 5801 6 8919 64 8765432 1
输出#1
12 18 196 1975581 958900 38416403456028
说明/提示
在第一个测试用例中,初始观察区间是 [1,7]。由于该区间长度为奇数,Iris 聚焦于第 4 颗星星,幸运值增加 4。然后她将观察区间分成 [1,3] 和 [5,7]。[1,3] 再次是奇数,于是她观察第 2 颗星星,幸运值再增 2。此后其被分为 [1,1] 和 [3,3],因其长度都小于 2,所以不再观察。区间 [5,7] 的过程类似,最终幸运值增加 6。所以最终的幸运值为 4+2+6=12。
在最后一个测试用例中,Iris 最终观察到了所有星星,其最终幸运值为 1+2+⋯+8765432=38416403456028。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?