QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#2472. Counting Haybales

統計

As usual, Bessie the cow is causing trouble in Farmer John's barn. FJ has $N$ ($1\leq N \leq 5000$) stacks of haybales. For each $i\in [1,N]$, the $i$th stack has $h_i$ ($1\le h_i\le 10^9$) haybales. Bessie does not want any haybales to fall, so the only operation she can perform is as follows:

  • If two adjacent stacks' heights differ by exactly one, she can move the top haybale of the taller stack to the shorter stack.

How many configurations are obtainable after performing the above operation finitely many times, modulo $10^9+7$? Two configurations are considered the same if, for all $i$, the $i$th stack has the same number of haybales in both.

Input Format

The first line contains $T$ ($1\le T\le 10$), the number of independent test cases, all of which must be solved to solve one input correctly.

Each test case consists of $N$, and then a sequence of $N$ heights. It is guaranteed that the sum of $N$ over all test cases does not exceed $5000$.

Output Format

Please output $T$ lines, one for each test case.

Sample Input

7
4
2 2 2 3
4
3 3 1 2
4
5 3 4 2
6
3 3 1 1 2 2
6
1 3 3 4 1 2
6
4 1 2 3 5 4
10
1 5 6 6 6 4 2 3 2 5

Sample Output

4
4
5
15
9
8
19

For the first test case, the four possible configurations are:

$$(2,2,2,3), (2,2,3,2), (2,3,2,2), (3,2,2,2).$$

For the second test case, the four possible configurations are:

$$(2,3,3,1),(3,2,3,1),(3,3,2,1), (3,3,1,2).$$

Scoring

  • Inputs 1-3 satisfy $N\le 10$.
  • Input 4 satisfies $1\le h_i\le 3$ for all $i$.
  • Inputs 5-7 satisfy $|h_i-i|\le 1$ for all $i$.
  • Inputs 8-10 satisfy $1\le h_i\le 4$ for all $i$ and $N\le 100$.
  • Inputs 11-13 satisfy $N\le 100$.
  • Inputs 14-17 satisfy $N\le 1000$.
  • Inputs 18-21 satisfy no additional constraints.

Problem credits: Daniel Zhang

About Issues

We understand that our problem archive is not perfect. If you find any issues with the problem, including the statement, scoring configuration, time/memory limits, test cases, etc.

You may use this form to submit an issue regarding the problem. A problem moderator will review your issue and proceed it properly.

STOP! Before you submit an issue, please READ the following guidelines:

  1. This is not a place to publish a discussion, editorial, or requests to debug your code. Your issue will only be visible by you and problem moderators. Other users will not be able to view or reply your issues.
  2. Do not submit duplicated issues. If you have already submitted one, please wait for an moderator to review it. Submitting multiple issues will not speed up the review process and might cause your account to be banned.
  3. Issues must be filed in English or Chinese only.
  4. Be sure your issue is related to this problem. If you need to submit an issue regarding another problem, contest, category, etc., you should submit it to the corresponding page.

Active Issues 0

No issues in this category.

Closed/Resolved Issues 0

No issues in this category.