CF1748E Yet Another Array Counting Problem
题目描述
对于长度为 $n$ 的序列 $x$,定义其在子段 $[l;r]$ 的“最左端最大值位置”为最小的满足 $l\leq i\leq r$ 且 $x_i=\max_{j=l}^rx_j$ 的整数 $i$。
给定整数 $n,m$ 和长度为 $n$ 的序列 $a$,你需要求出满足下列要求的序列 $b$ 的数量:
- 序列 $b$ 长度为 $n$,且对任意整数 $i(1\leq i\leq n)$ 都有 $1\leq b_i\leq m$ 成立。
- 对任意整数 $l,r(1\leq l\leq r\leq n)$,总有 $a,b$ 在子段 $[l;r]$ 的“最左端最大值位置”相同。
答案对 $10^9+7$ 取模。
每个测试点包含多组数据。
输入格式
第一行输入一个整数 $t(1\leq t\leq10^3)$ 表示数据组数,接下来对于每组数据:
第一行输入两个整数 $n,m(2\leq n,m\leq2\times10^5;\sum n\times m\leq10^6)$。
接下来输入一行 $n$ 个整数表示序列 $a(1\leq a_i\leq m)$。
输出格式
对于每组数据:
输出满足要求的序列 $b$ 的数量对 $10^9+7$ 取模后的值。
### 样例解释
- 对于第一组数据:
- 下面是所有 $8$ 个满足要求的序列 $b$:
$[1,2,1],[1,2,2],[1,3,1],[1,3,2],[1,3,3],[2,3,1],[2,3,2],[2,3,3]$。
- 对于第二组数据:
- 下面是所有 $5$ 个满足要求的序列 $b$:
$[1,1,1,1],[2,1,1,1],[2,2,1,1],[2,2,2,1],[2,2,2,2]$。
说明/提示
In the first test case, the following $ 8 $ arrays satisfy the conditions from the statement:
- $ [1,2,1] $ ;
- $ [1,2,2] $ ;
- $ [1,3,1] $ ;
- $ [1,3,2] $ ;
- $ [1,3,3] $ ;
- $ [2,3,1] $ ;
- $ [2,3,2] $ ;
- $ [2,3,3] $ .
In the second test case, the following $ 5 $ arrays satisfy the conditions from the statement:
- $ [1,1,1,1] $ ;
- $ [2,1,1,1] $ ;
- $ [2,2,1,1] $ ;
- $ [2,2,2,1] $ ;
- $ [2,2,2,2] $ .