#P11243. 繁花

    ID: 10682 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 3 Uploaded By: Tags>递推洛谷原创O2优化洛谷月赛双指针,two-pointer

繁花

题目背景

English statement. You must submit your code at the Chinese version of the statement.

我已经知道,在设置好循环播放时就已经知道,我是在麻痹自己,在逃避问题。

我承认如此,可捞起那些沉于水底的细节时,却一瞬间突然和所有所有真实的心跳共鸣。

那时总想的太少,现在常想得太多,不知所措似荒塘里的绿藻蔓延着。

然而这世间情感太多,小 R 也只能体会更开心和更难过。

题目描述

小 R 想对上面的问题进行探究,她想先做一些统计,于是她抽象了这个问题。

小 R 有 nn 个未知量 a1ana_1\dots a_n,对每个 1i<n1 \leq i < n,她都比较了 aia_iai+1a_{i+1} 并写下了一个字符 ci{<,>,=}c_i \in \{\texttt <, \texttt >, \texttt =\},表示两个未知量之间的比较结果。具体地:

  • ci=>c_i = \texttt >,则 ai>ai+1a_i > a_{i+1}
  • ci=<c_i = \texttt <,则 ai<ai+1a_i < a_{i+1}
  • 否则(ci==c_i = \texttt =),表示 ai=ai+1a_i = a_{i+1}

小 R 称 ai\bm{a_i} aj\bm{a_j} 更开心,当且仅当对任何 满足上述 n1\bm{n - 1} 条约束的 [a1,,an]Rn[a_1, \dots, a_n] \in \mathbb R^n,都有 ai<aja_i < a_j。请你帮她数出 1i,jn1 \leq i, j \leq naia_iaja_j 更开心的整数数对 (i,j)(i, j) 个数。

因为要循环播放,所以有多组数据。

输入格式

本题有多组数据。

第一行,一个整数 TT,表示数据组数。对于每组数据:

  • 第一行一个整数 nn
  • 接下来一行,一个长度为 n1n - 1 的字符串 c1c2cn1c_1c_2\dots c_{n-1}

输出格式

对于每组数据,输出仅一行一个整数,表示符合条件的整数数对个数。

5
5
<<<<
7
<=><=<
9
=<<><==<
11
>=<<=>>>=>
13
=><<=<=>=><>

10
9
13
29
25

提示

样例解释

  • 对于第一组数据,aia_iaja_j 开心当且仅当 1i<jn1 \leq i < j \leq n,故共有 5×42=10\frac{5\times 4}{2} = 10 对合法的 (i,j)(i, j)
  • 对于第二组数据,合法的 (i,j)(i, j) 分别为:$(1, 2), (1, 3), (4, 2), (4, 3), (4, 5), (4, 6), (4, 7), (5, 7), (6, 7)$,共 99 对。
  • 对于其他几组数据,聪明的读者可以自行验证。

数据规模与约定

本题采用捆绑测试和子任务依赖。

  • Subtask 0(0 pts):样例。
  • Subtask 1(10 pts):n8n \leq 8T8T \leq 8
  • Subtask 2(20 pts):n5000n \leq 5000T8T \leq 8。依赖于子任务 0,10, 1
  • Subtask 3(20 pts):ci=c_i \neq \texttt =
  • Subtask 4(50 pts):无特殊限制。依赖于子任务 030 \sim 3

对于所有数据,保证 2n2×1052 \leq n \leq 2\times 10^51T1041 \leq T \leq 10^4ci{<,>,=}c_i \in \{\texttt <, \texttt >, \texttt =\}n5×105\sum n \leq 5\times 10^5