#P13666. [GCPC 2023] Adolescent Architecture 2

[GCPC 2023] Adolescent Architecture 2

Description

三年前,你曾帮助小彼得将他的玩具积木堆成一座高塔。从那以后,他扩充了自己的玩具积木收藏,如今拥有以下几种基础形状:

  • circle  a\texttt{circle}\;a —— 半径为 aa 的圆形;
  • square  a\texttt{square}\;a —— 边长为 aa 的正方形;
  • triangle  a\texttt{triangle}\;a —— 边长为 aa 的等边三角形。

其中,aa 可以是任意正整数。每个积木的顶部和底部形状相同,因此这些积木分别是长方体、圆柱体和三棱柱。彼得拥有无限数量的每种形状和尺寸的积木。

游戏进行中。

:::align{center} 图 A.1:游戏进行中。 :::

彼得和他的朋友 Amy 正在玩一个双人游戏,规则是将积木依次堆叠在一起。 一开始,地板上已经放置了一些积木。 每一回合,当前玩家必须从无限的积木中选择一个,并将其放在现有某一堆的顶部。 在放置之前,积木可以绕其竖直轴旋转。 新积木的轮廓必须严格位于旧积木的轮廓之内,轮廓之间不能接触。 无法进行操作的第一个玩家判负。

给定初始状态,求先手玩家的必胜步数。

Input Format

输入包括:

  • 第一行包含一个整数 nn1n10001 \le n \le 1000),表示初始堆的数量。
  • 接下来 nn 行,每行包含一个字符串 ssss 为 "circle\texttt{circle}"、"square\texttt{square}" 或 "triangle\texttt{triangle}" 之一)和一个整数 aa1a1091 \le a \le 10^9),描述每一堆顶部的积木。

Output Format

输出一个整数,表示先手玩家的必胜步数。

2
circle 2
triangle 2
2
2
circle 1
circle 2
3
5
circle 123
triangle 456
square 789
square 789
triangle 555
7
3
circle 299303201
square 79724391
triangle 437068198
3
3
square 539715887
circle 518408351
triangle 348712924
0

Hint

图 A.2:样例输入 2 的示意图,展示了当彼得先手并采取最优策略时,游戏所有可能的结束状态。蓝色积木为初始状态。彼得需要在 circle  2\texttt{circle\;2} 上放置 circle  1\texttt{circle\;1}square  2\texttt{square\;2}triangle  3\texttt{triangle\;3} 中的任意一个,才能获胜。这三种选择分别对应图中的三行。彼得放置的积木用红色表示,Amy 放置的积木用黄色表示。由于最后两个积木总是 triangle  1\texttt{triangle\;1},因此用灰色表示。例如,如果彼得首先放置 circle  1\texttt{circle\;1}(如第一行所示),那么彼得可以通过镜像 Amy 的后续操作来获胜。

由 ChatGPT 4.1 翻译