zoukankan      html  css  js  c++  java
  • 三角恋

    2066 三角恋

     

     时间限制: 1 s
     空间限制: 128000 KB
     题目等级 : 钻石 Diamond
     
     
     
    题目描述 Description

    人们的恋爱关系与如下特点:两个人a,b,如果a爱着b,那么b一定不爱a;如果a不爱b,那么b一定爱着a(yh的研究成果果然与众不同……)。

    现在,yh想知道,在n个人当中,是否存在三角恋现象(即a爱着b,b爱着c,c爱着a)。

    输入描述 Input Description

    本题有多组测试数据

    第一行一个整数t,表示有t组测试数据。

    对于每组数据,第一行为一个整数n,表示共有n人。

    接下来为n*n的0,1矩阵a,如果a[i,j]=1,则i爱着j,否则表示i不爱j;数据保证a[i,j]<>a[j,i]。

    输出描述 Output Description

    每组数据输出一行,如果存在三角恋,输出’Yes’,否则输出’No’。

    样例输入 Sample Input

    2

    5

    00100

    10000

    01001

    11101

    11000

    5

    01111

    00000

    01000

    01100

    01110

    样例输出 Sample Output

    Yes

    No

    数据范围及提示 Data Size & Hint

    对于40%的数据,n≤10

    对于100%的数据,n≤2000, t≤5

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    int n,m,k,t,l;
    char s[2005];
    int a[10001][10001];
    bool pd;
    int b[100001];
    inline void dfs(int x)
    {
        if(pd)return;
        for(int i=1;i<=n;++i)
        {
            if(a[x][i]&&(b[i]==0||b[i]==-1))
            {
                if(pd)break;
                if(b[i]==-1)
                {
                    pd=true;
                    return;
                }
                b[i]=-1;
                dfs(i);
            }
        }
        b[x]=1;
    }
    int main()
    {
        cin>>t;
        while(t--)
        {
            scanf("%d
    ",&n);
            for(int i=1;i<=n;++i)
            {
                gets(s);
                for(int j=1;j<=n;++j)
                    a[i][j]=s[j-1]-'0';
            }
            memset(b,0,sizeof(b));
            pd=false;
            dfs(1);
            if(pd)
                cout<<"Yes"<<endl;
            else 
                cout<<"No"<<endl;
        }
    }

     

  • 相关阅读:
    函数中this指向问题及函数不同方式的调用
    拷贝继承
    组合继承
    借用构造函数
    继承
    UVA-11054(扫描法)
    hihocoder-1347 小h的树上的朋友(lca+线段树)
    UVA-10391(字符串检索)
    UVA-10125(中途相遇法)
    UVA-10827(前缀和降维)
  • 原文地址:https://www.cnblogs.com/dxy1174868024/p/5540310.html
Copyright © 2011-2022 走看看