#cspx02003. 元阳梯田的灌溉节 (Sum of Josephus)
元阳梯田的灌溉节 (Sum of Josephus)
当前没有测试数据。
元阳梯田的灌溉节 (Sum of Josephus)
题目背景: 在云南元阳,哈尼族同胞开垦的梯田随山势叠层而上,蔚为壮观。每年春耕时节,哈尼族人会举行传统的灌溉祭祀。
题目描述: 元阳的一处山坡上有许多块梯田,每块梯田按高度从高到低编号为 。在灌溉祭祀中,如果今年有 块梯田参与祭祀,祭司会按照“猫捉老鼠”的规律(即:隔一个关掉一个水闸,第一个水闸保留,第二个关掉,依此类推)来决定最后一块保持灌溉的梯田,这块梯田被称为“丰收田”,其编号记为 。
例如:
- 当 时,水闸关闭顺序为 2, 1,最后剩下 。
- 当 时,水闸关闭顺序为 2, 4, 1, 5,最后剩下 。
哈尼小伙子阿强提出了一个难题:给定一个范围 ,他想知道如果参与祭祀的梯田总数分别取 时,所有对应的“丰收田”编号之和是多少?即求:
由于结果可能非常大,请输出答案对 取模后的结果。
【输入格式】 输入包含多组测试数据。第一行包含一个整数 ,表示测试组数。 接下来 行,每行包含两个正整数 和 。
【输出格式】 对于每组数据,输出一个整数,表示区间内 的和对 取模的结果。
【输入样例】
3
1 3
5 10
1 100
【输出样例】
5
24
2734
【样例解释】
- 对于 :。和为 。
- 对于 : 。 和为 。