/*===================================
输入:
每行两个数字,数字之间用空格分隔;
ctrl+z表示输入结束
输出:
关系所具有的性质(后附测试数据)
====================================*/
#include<bits/stdc++.h>
#define MAXN 1000
using namespace std;

struct Matrix{
    int m,n;//m行n列的矩阵
    int a[MAXN][MAXN];
    void clear(){
        m=0,n=0;
        memset(a,0,sizeof(a));
    }
};
Matrix mat;
int max_mat_x;
int max_mat_y;
void Read(){
    int x,y;
    while(cin>>x>>y){
        mat.a[x][y]=1;
        max_mat_x=max(x,max_mat_x);
        max_mat_y=max(max_mat_y,y);
    }
}

int main(){
    mat.clear();
    int x,y,z;
    Read();
    int flag=1;
    for(int i=0;i<max(max_mat_x,max_mat_y);i++){
        if(mat.a[0][0]!=mat.a[i][i]){
            flag=0;break;
        }
    }
    if(flag==1){
        if(mat.a[0][0]==1)
            cout<<"Reflexivity"<<endl;
        else 
            cout<<"Anti-reflexivity"<<endl;
    }
    else
        cout<<"Neither reflexive nor anti-reflexive"<<endl;
    flag=1;
    for(int i=0;i<max(max_mat_x,max_mat_y);i++)
        for(int j=i+1;j<max(max_mat_x,max_mat_y);j++){
            if(mat.a[i][j]!=mat.a[j][i]){
                flag=0;break;
            }
        }
    if(flag==1)
        cout<<"symmetry"<<endl;
    flag=1;
    for(int i=0;i<max(max_mat_x,max_mat_y);i++)
        for(int j=i+1;j<max(max_mat_x,max_mat_y);j++){
            if(mat.a[i][j]==mat.a[j][i]){
                flag=0;break;
            }
        }
    if(flag==1)
        cout<<"antisymmetry"<<endl;
    flag=1;
    for(int i=0;i<max(max_mat_x,max_mat_y);i++)
        for(int j=0;j<max(max_mat_x,max_mat_y);j++){
            if(mat.a[i][j]==1){
                for(int k=0;k<max(max_mat_x,max_mat_y);k++){
                    if(mat.a[j][k]==1){
                        if(mat.a[i][k]!=1){
                            flag=0;break;
                        }
                    }
                }
            }
        }
    if(flag==1)
        cout<<"Transitive"<<endl;
    system("pause");
    return 0;
}

/*
1 1
1 2
2 3
1 3
Neither reflexive nor anti-reflexive
Transitive
*/

/*
1 1
1 2
2 1
Neither reflexive nor anti-reflexive
symmetry
Transitive
*/

One Reply to “Disccrete_Binary relationship”

  1. Google Chrome 63.0.3239.132 Google Chrome 63.0.3239.132 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

    卧槽,用程序实现的离散,666

发表评论

电子邮件地址不会被公开。 必填项已用*标注