QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 256 MB 満点: 100

#1648. フェンスの仕事

統計

農夫のフレッドは、自宅の柵を再設計したいと考えている。フレッドの柵は、様々な高さの $n$ 本の垂直な木の板で構成されている。$i$ 番目の板の高さは $h_i$ ($1 \le h_i \le n$) である。当初、すべての高さは相異なっている。

柵を再設計するために、フレッドは板の連続する区間 $[l \dots r]$ を選び、その区間内の最小の高さに合わせて板を切り揃えることで「平坦化」を行う。より具体的には、その区間内のすべての $i$ ($l \le i \le r$) について、新しい高さは $h'_i = \min\{h_l, h_{l+1}, \dots, h_r\}$ となる。

この操作を数回(0回でもよい)適用することで、フレッドはいくつの異なる柵のデザインを得ることができるだろうか。答えは非常に大きくなる可能性があるため、$10^9 + 7$ で割った余りを出力せよ。

2つのデザイン $A$ と $B$ は、ある板の高さが $A$ と $B$ で異なるとき、異なるとみなす。

入力

入力の最初の行には、フレッドの柵の板の数 $n$ ($1 \le n \le 3000$) が含まれる。 2行目には、$n$ 個の相異なる整数 $h_i$ ($1 \le h_i \le n, 1 \le i \le n$) が含まれ、各板の高さを表す。

出力

得られる可能性のある異なる柵のデザインの数を、$10^9 + 7$ で割った余りで1つの整数として出力せよ。

入出力例

入力 1

3
1 3 2

出力 1

4

入力 2

5
1 2 3 4 5

出力 2

42

入力 3

7
1 4 2 5 3 6 7

出力 3

124

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.