CF1202C You Are Given a WASD-string...

题目描述

你有一个字符串 $s$,表示你玩具机器人的一系列指令。机器人被放置在一个矩形网格的某个格子中。它可以执行四种指令: - 'W' —— 向上移动一格; - 'S' —— 向下移动一格; - 'A' —— 向左移动一格; - 'D' —— 向右移动一格。 设 $Grid(s)$ 为面积最小的网格,使得存在一个位置可以放置机器人,并且在执行指令序列 $s$ 时,机器人不会从网格上掉落。例如,如果 $s = \text{DSAWWAW}$,那么 $Grid(s)$ 是 $4 \times 3$ 的网格: 1. 你可以将机器人放在格子 $(3, 2)$; 2. 机器人执行指令 'D',移动到 $(3, 3)$; 3. 机器人执行指令 'S',移动到 $(4, 3)$; 4. 机器人执行指令 'A',移动到 $(4, 2)$; 5. 机器人执行指令 'W',移动到 $(3, 2)$; 6. 机器人执行指令 'W',移动到 $(2, 2)$; 7. 机器人执行指令 'A',移动到 $(2, 1)$; 8. 机器人执行指令 'W',移动到 $(1, 1)$。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1202C/14db41d91dc6fffe218fcbada16fff9a7890d775.png) 你有 4 个额外的字母:一个 'W',一个 'A',一个 'S',一个 'D'。你可以在序列 $s$ 的任意位置插入至多一个这样的字母,以最小化 $Grid(s)$ 的面积。 你能得到的 $Grid(s)$ 的最小面积是多少?

输入格式

第一行包含一个整数 $T$($1 \le T \le 1000$),表示询问的数量。 接下来的 $T$ 行,每行一个字符串 $s$($1 \le |s| \le 2 \cdot 10^5$,$s_i \in \{\text{W}, \text{A}, \text{S}, \text{D}\}$),表示指令序列。 保证所有询问中 $s$ 的总长度不超过 $2 \cdot 10^5$。

输出格式

输出 $T$ 个整数,每个询问输出一行。对于每个询问,输出你能得到的 $Grid(s)$ 的最小面积。

说明/提示

对于第一个询问,你需要得到字符串 $\text{DSAWW}\underline{D}\text{AW}$。 对于第二个和第三个询问,你无法减小 $Grid(s)$ 的面积。 由 ChatGPT 4.1 翻译