HDU4324-Triangle LOVE-判断是否存在环(拓扑)

来源:互联网 发布:爱因斯坦人工智能名言 编辑:程序博客网 时间:2024/04/28 02:26

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4324

题目意思:矩阵。1表示i-th喜欢j-th,问是否存在环状喜欢关系。

#include<iostream>#include<string>#include<cstring>#include<cstdio>using namespace std;const int N=2005;bool Map[N][N];int t,n,Case=1;char str[N];struct node{    int in,out;}s[N];int TopSort(){    for(int i=0;i<n;i++){        for(int j=0;j<n;j++){            if(s[j].in==0){                s[j].in=-1;                for(int k=0;k<n;k++){                    if(Map[j][k]){                        s[k].in--;                    }                }            }        }    }    for(int i=0;i<n;i++)        if(s[i].in>0) return 0;    return 1;}int main(){    scanf("%d",&t);    while(t--){        scanf("%d",&n);        memset(Map,false,sizeof(Map));        memset(s,0,sizeof(s));        for(int i=0;i<n;i++){            scanf("%s",str);            for(int j=0;j<n;j++){                if(str[j]=='1'){                    s[i].out++;                    s[j].in++;                    Map[i][j]=true;                }            }        }        if(!TopSort()) printf("Case #%d: Yes\n",Case++);        else printf("Case #%d: No\n",Case++);    }    return 0;}


0 0