【多校训练】hdu 6165 FFF at Valentine

来源:互联网 发布:淘宝村淘扣款比例 编辑:程序博客网 时间:2024/05/23 23:10

题意:

题目很迷,大概的意思是给出一个图,问任意两点之间是否存在一条路径可达

思路:

数据比较弱,直接暴力过了 ,其实可以缩点后再dfs。

////  main.cpp//  1005////  Created by zc on 2017/8/22.//  Copyright © 2017年 zc. All rights reserved.//#include <iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<stack>using namespace std;const int N=1100;int n,m,ans,p,v[N],c[N][N];vector<int>r[N];void dfs(int t){    v[t]=1;    c[p][t]=1;    for(int i=0;i<r[t].size();i++)    {        if(!v[r[t][i]])        {            dfs(r[t][i]);        }    }}int main(int argc, const char * argv[]) {    int T;    scanf("%d",&T);    while(T--)    {        scanf("%d%d",&n,&m);        ans=0;        for(int i=0;i<=n;i++)   r[i].clear();        for(int i=0;i<m;i++)        {            int x,y;            scanf("%d%d",&x,&y);            r[x].push_back(y);        }        memset(c,0,sizeof(c));        for(int i=1;i<=n&&ans==0;i++)        {            memset(v,0,sizeof(v));            p=i;            dfs(i);            for(int j=1;j<i;j++)            {                if(c[i][j]==0&&c[j][i]==0)                {                    ans=1;break;                }            }        }        if(ans==0)            printf("I love you my love and our love save us!\n");        else            printf("Light my fire!\n");    }}





原创粉丝点击