1391: 集合上的关系

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:121 解决:107

题目描述

如果一个集合是空集或者其中的元素都是序偶,则称这个集合是一个二元关系,记作R。对于集合A、B,它们的笛卡尔积的任何子集所定义的二元关系称为从A到B的二元关系,当A=B时称为A上的二元关系。
现在给你一个有限正整数集合A和A上的一个二元关系R关系矩阵。A中的元素都是小于N的正整数,请你设计一个二元关系类Relation来表示有限正整数集合A上的二元关系R,R中需要一些必要的属性和方法。并编程判断给定的二元关系R是否是A上的整除关系DA或A上的恒等关系IA
对于A上的任意2个元素i和j,如果<i,j>在关系R中,则在R的关系矩阵的对应位置上的值为1,否则为0。
整除关系DA指的是,A中的元素X如果整除元素Y,则<X,Y>在关系R中。如:对于N等于4,A上的二元关系R的整除关系矩阵为
1 1 1 1
0 1 0 1
0 0 1 0
0 0 0 1
恒等关系IA指的是,A中的元素X和自身所构成的序偶<X,X>是IA中的元素。如等于N等于4,A上的二元关系R的恒等关系矩阵为
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

输入

问题的输入有多组。每组第一行是一个正整数N,表示A中的元素都是小于N的正整数。当N等于0是结束输入。随后有N行由N个0或者1构成的数据,表示集合A上的二元关系R的关系矩阵。

输出

输出集合A上的二元关系R是否是整除关系DA或恒等关系IA。格式见范例。

样例输入 复制

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

样例输出 复制

是集合A上的整除关系,是集合A上的恒等关系。
不是集合A上的整除关系,不是集合A上的恒等关系。
是集合A上的整除关系,不是集合A上的恒等关系。
不是集合A上的整除关系,是集合A上的恒等关系。
不是集合A上的整除关系,不是集合A上的恒等关系。

提示

恒等关系的判断:主对角线上都是1,其余都是0。 整除关系的判断:逐行验证该行所代表的数字i能被每一列所代表的数字j整除的情况,如果i能整除j,则(i,j)位置应当为1,否则要为0。