首頁 > php教程 > php手册 > 主體

PHP操作MongoDB 数据库总结记录

WBOY
發布: 2016-06-13 10:58:17
原創
1104 人瀏覽過

#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;
}
登入後複製

 

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板