CF1895F.Fancy Arrays

省选/NOI-

通过率:0%

时间限制:4.00s

内存限制:512MB

AC君温馨提醒

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

题目描述

Let's call an array aa of nn non-negative integers fancy if the following conditions hold:

  • at least one from the numbers xx, x+1x + 1, ..., x+k−1x+k-1 appears in the array;
  • consecutive elements of the array differ by at most kk (i.e. ∣ai−ai−1∣≤k|a_i-a_{i-1}| \le k for each i∈[2,n]i \in [2, n]).

You are given nn, xx and kk. Your task is to calculate the number of fancy arrays of length nn. Since the answer can be large, print it modulo 109+710^9+7.

我们称一个由 nn 个非负整数组成的数组 aa 是“精巧的”(fancy),当且仅当满足以下两个条件:

  • 数 xx, x+1x + 1, ..., x+k−1x+k-1 中至少有一个出现在该数组中;
  • 数组中相邻元素之差的绝对值至多为 kk(即对每个 i∈[2,n]i \in [2, n],均有 ∣ai−ai−1∣≤k|a_i-a_{i-1}| \le k)。

给定 nn、xx 和 kk,你的任务是计算长度为 nn 的精巧数组的个数。由于答案可能很大,请输出其对 109+710^9+7 取模的结果。

输入格式

The first line contains a single integer tt (1≤t≤501 \le t \le 50) — the number of test cases.

The only line of each test case contains three integers nn, xx and kk (1≤n,k≤1091 \le n, k \le 10^9; 0≤x≤400 \le x \le 40).

第一行包含一个整数 tt(1≤t≤501 \le t \le 50)—— 测试用例的数量。

每个测试用例仅有一行,包含三个整数 nn、xx 和 kk(1≤n,k≤1091 \le n, k \le 10^9;0≤x≤400 \le x \le 40)。

输出格式

For each test case, print a single integer — the number of fancy arrays of length nn, taken modulo 109+710^9+7.

对于每个测试用例,输出一个整数——长度为 nn 的“炫酷数组”(fancy arrays)的个数,对 109+710^9+7 取模。

输入输出样例

  • 输入#1

    4
    3 0 1
    1 4 25
    4 7 2
    1000000000 40 1000000000

    输出#1

    9
    25
    582
    514035484

说明/提示

In the first test case of the example, the following arrays are fancy:

  • [0,0,0][0, 0, 0];
  • [0,0,1][0, 0, 1];
  • [0,1,0][0, 1, 0];
  • [0,1,1][0, 1, 1];
  • [0,1,2][0, 1, 2];
  • [1,0,0][1, 0, 0];
  • [1,0,1][1, 0, 1];
  • [1,1,0][1, 1, 0];
  • [2,1,0][2, 1, 0].

在示例的第一个测试用例中,以下数组是“花哨的”(fancy):

  • [0,0,0][0, 0, 0];
  • [0,0,1][0, 0, 1];
  • [0,1,0][0, 1, 0];
  • [0,1,1][0, 1, 1];
  • [0,1,2][0, 1, 2];
  • [1,0,0][1, 0, 0];
  • [1,0,1][1, 0, 1];
  • [1,1,0][1, 1, 0];
  • [2,1,0][2, 1, 0]。

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

首页