2026. 数组失窃案

时间限制 1000 ms   内存限制 256 MB

价值连城的数组 $a$ 被怪盗基德偷走了!

名侦探毛利小五郎得知,被偷窃的数组 $a$ 长度为 $n$ ,原本存放在数组展柜中。数组展柜设有自动报警功能,会时刻检查数组 $a$ 每个长度不小于 $2$ 的区间的权值,其中区间 $[l,r],(1\le l< r\le n)$ 的权值为满足 $l< i\le r, a_i>a_l$ 的 $i$ 的个数。如果数组 $a$ 的任意一个区间的权值发生了变化,数组展柜就会发出警报。

虽然数组展柜有着强大的防盗系统,但怪盗基德还是在没有触发警报的情况下用一个长为 $n$ 的数组 $b$ 替换了数组 $a$ 。

为了分析怪盗基德替换数组的手段,毛利小五郎希望知道能替换数组 $a$ 而不触发警报的数组的总数,也就是满足以下两个条件的数组 $b$ 的个数(包括数组 $a$ 本身):

  1. 对于任意的 $1\le i\le n$ ,都有 $1\le b_i\le m$ 。

  2. 对于任意长度不小于 $2$ 的区间 $[l,r],(1\le l< r\le n)$ ,数组 $b$ 在这个区间上的权值与数组 $a$ 一致。

假如你是柯南,你能帮毛利小五郎算出答案吗?由于答案可能很大,你只需要告诉毛利小五郎答案对 $10^9+7$ 取模的结果。

输入数据

第一行为一个整数 $T$ ,表示测试点的总数。 $1\le T\le 10^5$ 。

对于每个测试点:

测试点的第一行为两个整数 $n,m$ 。 $2\le n\le 2\times 10^5,\ 1\le m\le 2\times 10^5$ 。

测试点的第二行为 $n$ 个整数 $a_1,a_2,\dots ,a_n $ ,表示数组 $a$ 。 $1\le a_i\le m$ 。

保证所有测试点的 $n$ 之和不超过 $2\times 10^5$ 。

输出数据

对于每组测试点,输出一个整数,表示满足条件的数组 $b$ 的个数,答案对 $10^9+7$ 取模。

样例输入

复制
2
3 3
2 3 1
10 233
3 1 4 1 5 9 2 6 5 3 \n
 · \n
 · · \n
  ·   \n
 · · · · · · · · · \n

样例输出

复制
4
884545294 \n
         \n

样例说明

对于第一组数据,数组 $a$ 区间 $[1,2],[1,3],[2,3]$ 的权值分别为 $1,1,0$ 。满足条件的数组 $b$ 有 $(1,2,1),(1,3,1),(2,3,1),(2,3,2)$ 四种。

提交

请先 登录

© 2024 FAQs Contact About