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

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

门| GATE CS Mock 2018 | 第 32 题

题目描述

本题考查布尔代数和逻辑电路。给定一个多输入多输出(MIMO)电路,求出所有输出都为 1 的输入的个数。例如,一个 MIMO 电路可能包含下列逻辑门符号:${\text{AND}, \text{OR}, \text{NOT}}$。

输入格式

第一行包含一个整数 $n$,表示电路的输入端口个数。第二行包含一个整数 $m$,表示电路的输出端口个数。接下来 $n$ 行,每行一个字符串 $s_i$,表示与输入端口 $i$ 相连的逻辑门的名称,$s_i\in{\text{AND}, \text{OR}, \text{NOT}}$。接下来 $m$ 行,每行一个逻辑门名称和该输出端口的输入端口列表。逻辑门名称和输入端口列表之间由一个空格分隔。输入端口列表是形如 $(p_1, p_2, \cdots, p_k)$ 的一个序列,其中 $p_1, p_2, \cdots, p_k$ 均为整数,表示该输出端口的输入端口。输入端口从 $1$ 开始编号。

输出格式

输出所有输出端口皆为 1 的输入端口个数。

示例
输入
2
2
NOT
OR
OR 1 2
OR 1 2
输出
0
解析

这道题需要我们考虑多输入多输出电路的逻辑运算,以及输出端口中所有输入值为 1 的情况。在具体的实现中,我们需要将输入值转化为二进制形式,以便更好地处理。此外,我们还需要注意一些特殊情况的处理,例如 NOT 门只有一个输入端口,需要特殊处理。

代码
暂无
参考