CF1428B Belted Rooms

题目描述

在蛇类展览中,有 $n$ 个房间(编号为 $0$ 到 $n-1$),每个房间里都有一条蛇。这些房间按环形排列,通过 $n$ 条传送带连接,第 $i$ 条传送带连接房间 $i$ 和 $(i+1) \bmod n$。换句话说,房间 $0$ 和 $1$、$1$ 和 $2$、$\ldots$、$n-2$ 和 $n-1$、$n-1$ 和 $0$ 都通过传送带相连。 第 $i$ 条传送带有三种状态: - 如果是顺时针的,蛇只能从房间 $i$ 前往 $(i+1) \bmod n$。 - 如果是逆时针的,蛇只能从房间 $(i+1) \bmod n$ 前往 $i$。 - 如果是关闭的,蛇可以双向通过。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1428B/76fac914463a158de3ff2f71ea695b0a2d793a84.png) 上图是 $4$ 个房间的例子,其中传送带 $0$ 和 $3$ 关闭,$1$ 是顺时针,$2$ 是逆时针。 每条蛇都希望离开自己的房间,并在之后返回。若某个房间的蛇可以离开并最终返回该房间,则称该房间为“可返回房间”。请问有多少个可返回房间?

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 1000$),表示测试用例的数量。 每组测试数据的第一行包含一个整数 $n$($2 \le n \le 300\,000$),表示房间的数量。 每组测试数据的第二行包含一个长度为 $n$ 的字符串 $s$,仅包含字符 '' 和 '-'。 - 如果 $s_{i} = $ '>',第 $i$ 条传送带为顺时针。 - 如果 $s_{i} = $ '

输出格式

对于每组测试数据,输出一个整数,表示可返回房间的数量。

说明/提示

在第一个测试用例中,除了房间 $2$ 以外,其他房间都是可返回的。房间 $2$ 的蛇被困住,无法出去。该测试用例对应题目描述中的图片。 在第二个测试用例中,所有房间都可以通过一系列顺时针传送带返回,因此都是可返回房间。 由 ChatGPT 4.1 翻译