Universal Cup Judging System

Universal Cup

時間限制: 4.0 s 記憶體限制: 1024 MB 總分: 100 难度: [顯示] 可 Hack ✓
统计

多頭盃(Multi-Heads Cup,簡稱 MHC)係一項為擁有好多好多個頭嘅參賽者舉辦嘅全球性程式設計競賽。喺 2023 年,呢項賽事嘅總裁判小藍魚(Little Cyan Fish)利用多種唔同類型嘅括號解決咗一個棘手嘅身份驗證問題。

嗰次係小藍魚第一次見到擁有好多好多個頭嘅參賽者。而今次,小藍魚為佢擁有好多好多個頭嘅好朋友帶嚟咗另一個括號問題。小藍魚手頭上有 $n$ 種類型嘅括號,每種類型嘅括號都分為左括號同右括號。為咗方便起見,我哋用 $L^i$ 表示第 $i$ 種類型嘅左括號,用 $R^i$ 表示第 $i$ 種類型嘅右括號。

「喂,唔好唔記得呀,」小藍魚心諗,「我之前向你介紹過咩係合法括號序列㗎!」為咗確保你理解合法括號序列嘅概念,小藍魚準備咗以下關於合法括號序列嘅正式定義:

  • $\varepsilon$(空字串)係一個合法括號序列。
  • 如果 $A$ 係一個合法括號序列,噉 $(A)$ 都係一個合法括號序列。
  • 如果 $A$ 同 $B$ 都係合法括號序列,噉 $AB$ 都係一個合法括號序列。

例如,「()」、「()()」同「(())」係合法括號序列,但「)(」、「(」同「))」唔係。

problem_18006_c94506411d8fcb12ebc396edd1eb34bd.png

而家,小藍魚畀你一個長度為 $n$ 嘅括號序列 $S$,入面包含 $n$ 種類型嘅括號。不幸嘅係,小藍魚唔記得咗某啲位置嘅括號類型,亦都唔記得咗呢啲位置嘅括號方向。對呢啲位置嘅記憶已經變得模糊,被小藍魚用 ? 表示。

小藍魚非常好奇,對於所有 $1 \le l \le r \le n$,有幾多個數對 $(l, r)$ 對應嘅子串 $S[l \dots r]$,滿足存在一種用某種方向嘅某種類型括號填補 ? 嘅方案,使得對於每個 $1 \le i \le n$,都滿足:

  • 提取出所有第 $i$ 種類型嘅括號(即所有嘅 $L^i$ 同 $R^i$),得到嘅括號序列(只包含第 $i$ 種括號)係一個合法括號序列。

例如,如果我哋用「()」表示第一種括號,用「[]」表示第二種括號,噉括號字串 ([?) 滿足上述條件,因為我哋可以將 ? 替換為 ]。(?)] 都滿足上述條件,因為我哋可以將 ? 替換為 [。

小藍魚想你計算所有合法數對 $(l, r)$ 嘅數量。

輸入格式

輸入包含多組測試數據。輸入嘅第一行包含一個整數 $T$ ($1 \le T$),表示測試數據嘅組數。

對於每組測試數據,輸入嘅第一行包含一個整數 $n$ ($1 \le n \le 2 \times 10^5$),表示括號字串嘅長度。

下一行包含 $n$ 個整數 $x_1, x_2, \dots, x_n$ ($-n \le x_i \le n$)。呢 $n$ 個整數描述咗括號字串嘅資訊,其中:

  • 如果 $x_i > 0$,則第 $i$ 個位置表示第 $x_i$ 種類型嘅左括號(即 $L^{x_i}$)。
  • 如果 $x_i < 0$,則第 $i$ 個位置表示第 $-x_i$ 種類型嘅右括號(即 $R^{-x_i}$)。
  • 如果 $x_i = 0$,表示小藍魚唔記得咗該位置嘅資訊(即 ?)。

保證所有測試數據嘅 $n$ 之和唔超過 $2 \times 10^5$。

輸出格式

對於每組測試數據,輸出一行,包含一個整數,表示答案。

樣例

輸入 1

4
4
1 2 -1 -2
4
1 0 -2 0
6
1 2 3 -3 -2 -1
8
1 0 0 3 0 0 0 -2

輸出 1

1
3
3
14

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.