CF1538E Funny Substrings
题目描述
Polycarp 发明了一种新的编程语言。该语言中只有两种语句:
- “x := s”:将变量名为 x 的变量赋值为字符串 s(其中 s 是一个字符串)。例如,语句 var := hello 会将变量 var 的值赋为 hello。注意,s 是字符串的值,而不是变量名。在变量名、:= 运算符和字符串之间各有且仅有一个空格。
- “x = a + b”:将变量名为 x 的变量赋值为变量 a 和变量 b 的值的拼接。例如,如果程序包含三条语句 a := hello,b := world,c = a + b,那么变量 c 的值将是 helloworld。保证程序是正确的,且变量 a 和 b 已经被定义。在变量名与 =、+ 运算符之间各有且仅有一个空格。
所有变量名和字符串仅由小写英文字母组成,且长度不超过 $5$ 个字符。
程序的结果是最后一条语句中被赋值的变量的字符串中,子串 haha 出现的次数。
Polycarp 在发明这门语言时非常疲惫。他请求你来实现它。你的任务是:对于给定的程序语句,计算最后被赋值的变量的字符串中子串 haha 出现的次数。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^3$)。接下来有 $t$ 组测试数据。
每组测试数据的第一行包含一个整数 $n$($1 \le n \le 50$),表示程序中的语句数。所有变量名和字符串保证仅由小写英文字母组成,且长度不超过 $5$ 个字符。
接下来有 $n$ 行,描述了程序中的语句,格式如上所述。保证程序是正确的。
输出格式
对于每组输入数据,输出最后一条语句中被赋值的变量的字符串中,子串 haha 出现的次数。
说明/提示
在第一个测试用例中,变量 d 的最终值为 hhahahaha。
由 ChatGPT 4.1 翻译