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$。
- 如果是关闭的,蛇可以双向通过。
 上图是 $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 翻译