当前位置:数据库 > mongodb >>

PHP操作MongoDB 数据库总结记录

#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;
}

 

补充:Web开发 , php ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,