>  기사  >  백엔드 개발  >  PHP操作MongoDB 数据库总结记录_PHP教程

PHP操作MongoDB 数据库总结记录_PHP教程

WBOY
WBOY원래의
2016-07-14 10:12:18865검색

#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
int vis[5000];
vector<int> map[5000];
int ans;
void dfs(int k,int num)
{

    vis[k]=num;     //相当于给每个结点编号
    for(int i=0;i<map[k].size();i++)
    {
        if(!vis[map[k][i]])
            dfs(map[k][i],num+1);
        else
        {
            int tmp=vis[k]-vis[map[k][i]]+1;//找到访问过的结点了,直接编号相减加1就是环的大小
            if(tmp>2&&tmp>ans)
            ans=tmp;
        }
    }
}
int main()
{
    int n,m,a,b,c;
    int cas;
    scanf("%d",&cas);
    while(cas--)
    {
        ans=0;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
        {
            map[i].clear();
        }
        for(int i=1;i<=m;i++)
        {
            scanf("%d%d",&a,&b);
            map[a].push_back(b);
            map[b].push_back(a);
        }
        memset(vis,0,sizeof(vis));
        for(int i=1;i<=n;i++)
        {
            if(!vis[i]);
            dfs(i,0);
        }
        printf("%d\n",ans);
    }
    return 0;
}

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477210.htmlTechArticle#includecstdio#includecstring#includevectorusing namespace std;int vis[5000];vectorint map[5000];int ans;void dfs(int k,int num){ vis[k]=num; //相当于给每个结点编号 for(i...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.