P7653 [BalticOI 1996] LOGICAL EXPRESSIONS (Day 1)

题目描述

有五个逻辑表达式,称为 R1、R2、R3、R4、R5。只有逻辑变量 $a、b、c、d、e、f、g、h$,逻辑运算 `#(not)` `&(and)` `+(or)` 和圆括号可以在表达式中使用。操作的优先级如上所述。可以使用圆括号定义执行操作的不同顺序。 操作由这样的表定义 ![Biao](https://cdn.luogu.com.cn/upload/image_hosting/ilfi8gbz.png) 假设有一些表达式可以通过带有一个或两个参数的单个逻辑运算来表达: - $R_i = R_j$($R_i$ 等价于 $R_j$,即对于每组变量值,$R_i$ 给出与 $R_j$ 相同的值); - $R_i =$ # $R_j$($R_i$ 等价于 $R_j$ 的否定); - $R_i = R_j $ & $R_k $(结合); - $R_i = R_j + R_k$(分离);其中($i≠k,i≠j$)。 一组基本的表达式是通过它可以表示(表达)未包含在该组中的任何其他表达式,如上定义。 编写一个程序来查找: 1. 任何最不基本的表达式集; 1. 每个表达式的任何表示(表达)(不属于表达式的基本集合)。应该使用带有一个或两个参数的任何单个逻辑运算来获得表示,即来自基本集合的表达式。

输入格式

一行一个表达式,R1 在第一行,以此类推。表达式中没有空格。假设输入数据是正确的。每行的长度小于 $256$。

输出格式

应包含 $5$ 行,每个表达式一行。将基本表达式的名称写入输出的第一行。其余行应包含所有其他表达式(即不属于基本表达式集的表达式)的等式(等价)形式的表示(表达式),如下面的示例所示。

说明/提示

#### 分值说明 本题分值按 BOI 原题设置,**满分** $30$ 。 #### 题目说明 来源于 Baltic Olympiad in Informatics 1996 的 [Day 1:LOGICAL EXPRESSIONS](https://boi.cses.fi/files/boi1996_day1.pdf) 。 由 @[求学的企鹅](/user/271784) 翻译整理。