📜  门| GATE CS Mock 2018 |第 36 题(1)

📅  最后修改于: 2023-12-03 15:42:13.112000             🧑  作者: Mango

门| GATE CS Mock 2018 |第 36 题

这是一道GATE 2018计算机科学模拟考试的编程题目,题目编号为第36题,题目名称为“门”(GATE CS Mock 2018 | Set 2 | Question 36 - Gates)。该题目是一道基于逻辑门的计算题目。

题目描述

给定若干个逻辑门及其输入和输出的关系,计算输出门的输出数值。逻辑门有4种类型:

  • AND: 输出是所有输入的逻辑与(logical AND)
  • OR: 输出是所有输入的逻辑或(logical OR)
  • NOT: 输出是输入的逻辑非(logical NOT)
  • XOR: 输出是所有输入的逻辑异或(logical XOR)

输入门只有1个输入端口,输出门只有1个输出端口。每个门可以与以下类型的门相连:

  • 输入门(Input gate),只有1个输入端口,用"i"表示。
  • 输出门(Output gate),只有1个输出端口,用"o"表示。
  • 逻辑门(Logic gate),有2个或多个输入端口和1个输出端口,用"AND"、"OR"、"NOT"、"XOR"表示。

输入的逻辑门和数字(每个数字都是0或1)列表按照以下格式:

<输出门1> <逻辑关系> <输入门1> <输入门2> ... <输入门N>
<输出门2> <逻辑关系> <输入门1> <输入门2> ... <输入门N>
...
<输出门M> <逻辑关系> <输入门1> <输入门2> ... <输入门N>
输入门<i>:<数字>
输出门<i>:<数字>

例如,下面的输入表示一个AND门和一个OR门输出到另一个AND门中:

G1 AND i1 i2
G2 OR i3 i4
G3 AND G1 G2
输入

输入的第一行包含一个整数T,表示测试用例的数量。每个测试用例都包括以下内容:

  • 第一行:一个整数N,表示输入门的数量。
  • 接下来的N行:每行描述了一个输入门和它的数字值,格式为<门ID> <数字值>,其中<门ID>是一个大写字符。
  • 下一行包含一个整数M,表示逻辑门的数量。
  • 接下来的M行:每行描述了一个逻辑门和它的输入和输出,格式为<门ID> <逻辑关系> <输入门1> <输入门2> ... <输入门N>,其中<逻辑关系>是AND、OR、NOT、XOR中的一个。
输出

对于测试用例中的每个输出门,在一行中输出一个数字0或1,表示输出门的数值。

示例

输入:

2
3
A 0
B 1
C 0
2
XOR A B
AND C A
1
A 1
1
NOT A A

输出:

1
1
0
说明

第一个测试用例可以表示以下过程:

0 XOR 1 = 1
1 AND 0 = 0

第二个测试用例表示:

NOT 1 = 0