A20963.Lost Logic

省选/NOI-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给定 33 组随机布尔变量 vi,1,...,vi,n(1i3)v_{i,1},...,v_{i,n}(1\leq i\leq 3),每组均为 nn 个。你需要构造关于布尔变量 x1,...,xnx_1,...,x_n 的若干组条件,使得满足全部条件的布尔变量赋值有且仅有 (vi,1,...,vi,n)(1i3)(v_{i,1},...,v_{i,n})(1\leq i\leq 3)33 组。

由于机器限制,你所构造每组条件的形式均应为:ABA\rightarrow B。这组条件的限制了:当 AA11BB 一定为 11。其中,A,BA,B 可能形如:

  • xix_i:表示第 ii 个变量的值。
  • !xi!x_i:表示第 ii 个变量取反后的值。

例如,如果你构造了 x1x2x_1\rightarrow x_2,那么表示你规定 x1=1x_1=1 时必有 x2=1x_2=1;如果你构造了 !x1x2!x_1\rightarrow x_2,那么你规定了 x1=0x_1=0 时必有 x2=1x_2=1。你需要找到一种使用不超过 500500 组条件来满足题意的方法,或者判定这样的条件组合不可能存在。如果有多组解,输出任意一组均可。

数据保证 2n50,vi,j{0,1}(1i3,1jn)2\leq n\leq 50,v_{i,j}\in\{0,1\}(1\leq i\leq 3,1\leq j\leq n)

输入格式

第一行包含一个整数n2n50n(2\leq n\leq 50)——变量的数量。后面各有三行

描述一项任务。第kk行包含nn个空格分隔的整数v1kv2kvnkv_1^k、v_2^k、\cdots、v_n^k,其中每个vikv_i^k0011,并表示第kk-个赋值中变量xix_i的值。这三项任务都会有所不同。

输出格式

如果没有解决方案输出,则输出一行包含整数1−1的内容。

否则,第一行应该包含一个整数mm,其中1m5001\leq m\leq 500——约束的数量

在您的解决方案中。以下mm行中的第kkth应包含第kk个约束。每个约束

应该是根据以下规则构造的字符串:
-变量是形式为“的字符串xi\texttt”的字符串{x}i”,其中ii是介于11nn之间的整数,包括写入的没有前导零。

-literal是由一个变量组成的字符串,该变量前面可能有“!}\texttt{!}”字符。

-constraint是形式为“A>bA\texttt{->}b”的字符串,其中AAbb都是文字。暗示符号

由“减号”字符和“大于号”字符组成,并且只有一个空格暗示符号前后的字符。

输入输出样例

  • 输入#1

    3
    0 0 0
    0 1 0
    1 0 0

    输出#1

    3
    x1 -> !x2
    x3 -> x1
    x3 -> x2
  • 输入#2

    4
    0 0 1 0
    1 0 0 0
    1 0 1 1

    输出#2

    -1
首页