P14600 [NWRRC 2025] Asynchronous Processor
题目描述
给定一个由 $n$ 条指令组成的程序,这些指令由一个具有单个整数寄存器 $A$ 的处理器执行,初始值为 $0$。每条指令是以下两种类型之一:
- $\texttt{+ v}$ —— 执行 $A := A + v$;
- $\texttt{= v}$ —— 执行 $A := v$。
程序中的指令从 $1$ 到 $n$ 编号。每条指令 $i$ 初始时间戳为 $i$。
有些指令被标记为 **异步**。如果指令 $i$ 是异步的,其时间戳可以更改为任何大于 $i$ 的 **实数**。
在所有时间戳调整之后,所有时间戳必须互不相同。处理器随后按时间戳递增的顺序执行指令。
确定在执行所有指令后,考虑所有可能的异步指令时间戳选择,$A$ 可以得到的不同的最终值的数量。
输入格式
第一行包含一个整数 $n$,表示程序中的指令数量($1 \le n \le 2000$)。
接下来的 $n$ 行中,第 $i$ 行描述指令 $i$,包含三个标记。第一个标记是 $\texttt{+}$ 或 $\texttt{=}$,表示指令的类型。第二个标记是一个整数 $v$,表示指令的参数($1 \le v \le 500$)。最后,第三个标记是 $\texttt{async}$(如果指令被标记为异步)或 $\texttt{sync}$(否则)。
输出格式
输出执行程序后 $A$ 可以取到的不同最终值的数量。
说明/提示
在第一个测试中,程序执行从指令 $1$ 将 $A$ 设置为 $1$ 开始。然后,指令 $2$ 和 $3$ 按以下两种顺序之一执行:
- 如果 $\texttt{= 2}$ 在 $\texttt{+ 3}$ 之前执行,$A$ 将等于 $5$;
- 如果 $\texttt{+ 3}$ 在 $\texttt{= 2}$ 之前执行,$A$ 将等于 $2$。
因此,最后 $A$ 有两个可能的值:$5$ 和 $2$。
---
翻译由 DeepSeek V3 完成