[SEERC 2020] Fence Job

Luogu
IDLGP10741
Time1000ms
Memory256MB
DifficultyP5
动态规划 DP2020ICPCSEERC
Fred 有一个长度为 $n$ 的排列 $h$,每次操作他可以选择一段区间 $[l,r]$,令 $h_i = \min_{j=l}^{r}h_j\ (i \in [l,r])$。 问进行若干次操作(可以为 $0$ 次)后不同的数组数量,对 $10^9 + 7$ 取模。 ## Input 第一行一个整数 $n\ (1 \leq n \leq 3000)$。 接下来一行 $n$ 个整数 $h_i\ (1 \leq h_i \leq n)$。 ## Output 输出操作后不同数组的数量模 $10^9+7$ 的值。 [samples]
Samples
Input #1
3
1 3 2
Output #1
4
Input #2
5
1 2 3 4 5
Output #2
42
Input #3
7
1 4 2 5 3 6 7
Output #3
124
API Response (JSON)
{
  "problem": {
    "name": "[SEERC 2020] Fence Job",
    "description": {
      "content": "Fred 有一个长度为 $n$ 的排列 $h$,每次操作他可以选择一段区间 $[l,r]$,令 $h_i = \\min_{j=l}^{r}h_j\\ (i \\in [l,r])$。 问进行若干次操作(可以为 $0$ 次)后不同的数组数量,对 $10^9 + 7$ 取模。",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 262144
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10741"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Fred 有一个长度为 $n$ 的排列 $h$,每次操作他可以选择一段区间 $[l,r]$,令 $h_i = \\min_{j=l}^{r}h_j\\ (i \\in [l,r])$。\n\n问进行若干次操作(可以为 $0$ 次)后不同的数组数量,对 $10^9 + 7$ 取模。\n\n## Input\n\n第一行一个整数 $n\\ (1 \\leq n \\leq 3000)$。\n\n接下来一行 $n$ 个整数 $h_...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments