Universal Cup Judging System

Universal Cup

実行時間制限: 4 s メモリ制限: 1024 MB 満点: 100 難易度: [表示]
統計

Énoncé

Una et Kamome prévoient de faire une randonnée dans la banlieue de Guangzhou. Il y a $n$ points de vue d'ouest en est dans la montagne, numérotés de 1 à $n$. Le $i$-ème point de vue a une altitude $h_i$. Una décide de choisir un intervalle $[l, r]$ ($1 \le l \le r < n$) et de voyager du $l$-ème point de vue au $r$-ème point de vue.

Cependant, Una n'aime pas les vallées, donc elle ne veut pas que pour tout $l < i < r$, $h_{i-1} > h_i < h_{i+1}$. En même temps, elle pense que les routes plates sont ennuyeuses, donc elle espère que pour tout $l < i < r$, $h_i \ne h_{i+1}$. Una appréciera le voyage si l'intervalle $[l, r]$ satisfait ces deux conditions.

Kamome a fait quelques recherches avant le voyage de randonnée et a découvert les altitudes de certains points de vue. Elle veut savoir que si les altitudes de tous les autres points de vue sont des entiers aléatoires indépendants dans $[1, m]$, combien d'intervalles $[l, r]$ différents peuvent être choisis pour aider Una à apprécier le voyage. Aidez Kamome à trouver la valeur attendue, modulo $10^9 + 7$.

Entrée

Chaque cas de test contient plusieurs cas de test. La première ligne contient un entier $t$ ($1 \le t \le 10^5$), indiquant le nombre de cas de test. La description des cas de test suit.

La première ligne contient deux entiers $n, m$ ($1 \le n \le 10^6$, $\sum n \le 10^7$, $1 < m < 10^9$), indiquant le nombre de points de vue dans la montagne et la plage d'altitudes.

La deuxième ligne contient $n$ entiers $h_1, h_2, \dots, h_n$ ($1 \le h_i < m$ ou $h_i = -1$), indiquant le résultat de la recherche que Kamome a faite. Si $h_i \ne -1$, $h_i$ signifie l'altitude réelle du point de vue $i$. Sinon, cela signifie que Kamome n'a trouvé aucune information sur l'altitude du point de vue $i$ et la considère comme un entier aléatoire dans $[1, m]$.

Sortie

Pour chaque cas de test, imprimez un entier, indiquant le nombre attendu d'intervalles $[l, r]$ tels qu'Una apprécie le voyage, modulo $10^9 + 7$.

Exemples

Entrée 1

10 8
4 4
1 4 2 3
3 3
-1 2 -1
4 2
-1 -1 -1 1
1 -1 -1 3
4 3
5 5
-1 2 -1 4 -1
6 4
5 5
2 -1 1 -1 -1 1
1 -1 4 -1 1
8 4
-1 2 -1 -1 2 -1 4 -1
9 7
4 -1 2 -1 -1 6 -1 4 -1
20 20
-1 -1 -1 5 -1 -1 1 3 -1 10 -1 -1 -1 -1
12 -1 3 -1 -1 -1 18

Sortie 1

666666676
875000012
555555566
872000016
750000017
400000014
554687520
973046972
216066617

Remarque 1

Pour le premier cas de test, Una apprécie le voyage si elle choisit les intervalles $[1, 1]$, $[2, 2]$, $[3, 3]$, $[4, 4]$, $[1, 2]$, $[2, 3]$, $[3, 4]$ ou $[1, 3]$. Pour le deuxième cas de test, la réponse est $\frac{1}{3}$.

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.