CF2267G New LRT

题目描述

著名城市新开通了一条 LRT(轻轨交通),这是一列沿直线路径行驶的火车。 给定两个数 $n$ 和 $m$,以及一个由 $m$ 个整数构成的数组 $c$。你现在位于位置 $0$,需要到达位置 $n$。当你处于位置 $i$ 时,可以按照以下方式乘坐列车: - 选择一个正整数 $x$,使得 $m \& x = x$,其中 $\&$ 表示按位与运算。 - 从位置 $i$ 移动到 $i+x$,并支付 $c_x$ 枚金币。 本次旅行的总费用为从位置 $0$ 到位置 $n$ 所需支付的所有金币之和。如果两次旅行的移动顺序不同或每次移动的步数不同,则这两种旅行视为不同。你的任务是,计算所有可能的旅行方案的费用之和。由于答案可能很大,请输出对 $10^9+7$ 取模的结果。

输入格式

每组测试包含多组测试数据。第一行包含测试用例的数量 $t$($1 \le t \le 10^4$)。接下来依次给出测试用例描述。 每个测试用例的第一行包含两个整数 $n$ 和 $m$($1\le n, m

输出格式

对于每个测试用例,输出一个整数,表示所有方案的总费用对 $10^9+7$ 取模的结果。

说明/提示

在第一个测试用例中,到达 $n$ 有 $4$ 种方式: - $0\rightarrow 1\rightarrow 2\rightarrow 3$,本次旅行的费用为 $c_1 + c_1 + c_1 = 6$。 - $0\rightarrow 1\rightarrow 3$,本次旅行的费用为 $c_1 + c_2 = 4$。 - $0\rightarrow 2\rightarrow 3$,本次旅行的费用为 $c_2 + c_1 = 4$。 - $0\rightarrow 3$,本次旅行的费用为 $c_3 = 1$。 因此,答案为 $6 + 4 + 4 + 1 = 15$。 由 ChatGPT 5 翻译