#P4106. [HEOI2014] 逻辑翻译

[HEOI2014] 逻辑翻译

Description

在人类的神经系统中,每个信号都可以用 1−1+1+1 来表示。这些信号组合起来最后形成了喜怒哀乐,酸甜苦辣,红黄绿蓝等各种各样的复杂信息。纳米探测科技的突破让生物学家可以测量大脑中特定区域的完整逻辑功能。然而超大数据的处理一直是令 H 教授头疼的问题。

假设一个逻辑单元接受 NN 个信号输入,并产生一个代表某种意义的实数值 rr 。那么总共可能的情况有 2N2^N 种。通过长时间的累积测量, H 教授可以准确地获得输入信号与 rr 的关系表:

f:{1,1}NRf :\{-1,1\}^N \to \mathbb{R}

然而进一步研究发现,神经元的运算方式可以被建模为人们熟知的多项式。由于一个输入信号值的平方一定为 11,所以我们可以用不含幂的 2N2^N 项的多项式来唯一表示任何一个逻辑 ff

例如 x1=+1;x2=+10x_1=+1; x_2=+1 \to 0

x1=+1;x2=11x_1=+1; x_2=-1 \to 1

x1=1;x2=+12x_1=-1; x_2=+1 \to 2

x1=1;x2=13x_1=-1; x_2=-1 \to 3

可以写成

f(x1,x2)=1.50.5x2x1f(x_1,x_2)=1.5-0.5x_2-x_1

研究一个逻辑单元的多项式形式对了解大脑工作十分有意义,于是小 M 决定帮 H 教授把测量出的逻辑关系表全部转换成多项式的形式。这么简单的工作一定难不倒编程能手小 M 的吧?

Input Format

第一行是 NN (1N201\le N \le20),接下来共 2N2^N 行,每一行是一组逻辑输入和一个对应值,代表 x1...xNx_1...x_N 的符号以及对应的 rr。详见样例。数据保证所有逻辑值的绝对值不超过 100100,且不包含超过 22 位小数。保证所有逻辑的输入串都互不相同。

Output Format

最多 2N2^N 行,代表多项式每一项的系数,如果答案为整数,输出整数形式。否则输出最简分数形式。如果系数恰好为 00,则省略整行。变量和系数用空格隔开,常数项不用加空格。

顺序按多项式的字典序:

  1. 常数项优先;

  2. 没有常数项时,最小 xx 下标更小的项优先;

  3. 当两项含有相同最小下标时,按除掉最小下标 xx 以后,以同样规则递归比较。

例:11x1x1x1x2x1x2x1x2x3x1x2x3x1x3x1x3x2x2x2x3x2x3x3x3。详见样例。

2 
++ 0 
+- 1 
-+ 2 
-- 3 
 

3/2 
-1 x1 
-1/2 x2 
3 
--- -1.0
-++ -1.0
+-+ -1.0
++- -1.0
--+ 1.0
-+- 1.0
+-- 1.0
+++ 1.0

1 x1x2x3

Hint

本题共有 1010 个测试数据。

对于第 11 个数据, N3N\le3;

对于第 22 个数据, N8N\le8;

对于第 3344 个数据,N11N\le11;

对于第 5566 个数据, 答案多项式中只有一个非零项,如样例#2。

对于第 7788 个数据, 答案多项式中最多有 55 个非零项。

对于 100%100\% 的数据, 1N20,r100,100rZ1 \le N \le 20,|r| \le 100, 100r\in \mathbb{Z}

友情提示

请注意输入输出的效率。