小A迷恋上了智能的chatgpt 16.0,这一天他在进行一些AI的智能研究。
他想要去研究一款AI的智能程度,主要是通过一种特别的图灵测试,来测试这款AI是否会说谎。
已知普通的计算机程序,内部是一些简单的if...else if...else语句。
例如,对于给定的 2 个布尔变量 01 ,可以用数组 b 来存储 b[0] = 0, b[1] = 1
if(b[0] == 0) return 0;
else if(b[1] == 1) return 1;
else return 1;
注意,每个判断语句只能判断一个布尔变量的值,那么,普通的计算机程序会返回 0 。
小A会告诉AI m 个不同的长度为 n 的布尔变量,AI会给出相应的返回值。如果存在某一种合理的if...else if...else语句,那么这个AI就很有可能是一个普通的AI,更可怕的是,不存在合法的if...else if...else语句,那么这个AI可能就产生了高级的智能,他在说谎!
输入的第一行包含 T ,为子测试用例的数量。
每一个子测试用例的第一行包含两个整数 n 和 m ,以下 m 行,每行包含一个由 n 个 0 或 1 组成的字符串,表示一个输入(即 b[0],...,b[n-1]的值),以及另一个字符(0 或 1)表示输出。
相邻的子测试用例之间用空行分隔。
对于每一个子测试用例,输出一行,包含 OK 或 LIE,分别表示AI可能没有说谎或是一定在说谎。
4 1 3 0 0 0 0 1 1 2 4 00 0 01 1 10 1 11 1 1 2 0 1 0 0 2 4 00 0 01 1 10 1 11 0
OK OK LIE LIE
以下是第一个子测试用例的一个合法的程序:
if(b[0] == 0) return 0;
else return 1;
以下是第一个子测试用例的另一个合法的程序:
if(b[0] == 1) return 1;
else return 0;
以下是第二个子测试用例的一个合法的程序:
if(b[0] == 1) return 1;
else if(b[0] == 0) return 0;
else return 1;
显然,对于第三个自测试用例不存在对应的合法的程序,因为AI的程序一定始终对相同的输出产生相同的输出。
可以证明对于最后一个自测试用例不存在对应的合法的程序。
对于全部的测试数据,满足 1 \leq n \leq 100, 1 \leq m \leq 100, 1 \leq T \leq 10
奇遇编程
2024年青岛市城阳区“区长杯”初中组第三题