离散实验 偏序关系

Problem Description

给定有限集上二元关系的关系矩阵,确定这个关系是否是偏序关系。

Input

多组测试数据,对于每组测试数据,第1行输入正整数n(1 <= n <= 100),第2行至第n+1行输入n行n列的关系矩阵。

Output

对于每组测试数据,若为偏序关系,则输出yes,反之,则输出no。

Sample Input

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

Sample Output

yes

no

#include #include int main() {     int a[101][101];     int k,i,j,n,flag;     while(scanf("%d",&n)!=EOF)     {         flag=1;         for(i=1;i<=n;i++)             for(j=1;j<=n;j++)             scanf("%d",&a[i][j]);         for(i=1;i<=n;i++)         {             for(j=1;j<=n;j++)             {                 if(i==j)                 {                     if(a[i][j]==0)                     {                         flag=0;                         break;                     }                 }                 else                 {                     if(a[i][j]==1)                     {                         if(a[j][i]==1)                         {                             flag=0;                             break;                         }                         for(k=1;k<=n;k++)                         {                             if(a[j][k]==1)                             {                                 if(a[i][k]==0)                                 {                                     flag=0;                                     break;                                 }                             }                         }                     }                 }             }             if(flag==0) break;         }         if(flag==0) printf("no\n");         else printf("yes\n");     }     return 0; }

你可能感兴趣的:(离散实验 偏序关系)