hdu1856
Posted syzf2222
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu1856相关的知识,希望对你有一定的参考价值。
求最大连通块……
#include<bits/stdc++.h> using namespace std; const int maxn=1e7+10; const int maxm=2*1e5+10; int vis[maxn]; int beg[maxn],nex[maxn],to[maxn],e; inline void add(int x,int y){ e++;nex[e]=beg[x]; beg[x]=e;to[e]=y; } inline int dfs(int x){ vis[x]=1; int cnt=1; for(int i=beg[x];i;i=nex[i]){ int t=to[i]; if(!vis[t])cnt+=dfs(t); } return cnt; } int main(){ int n; while(scanf("%d",&n)!=EOF){ int x,y; e=0; memset(vis,0,sizeof(vis)); memset(beg,0,sizeof(beg)); for(int i=1;i<=n;i++){ scanf("%d%d",&x,&y); add(x,y),add(y,x); } int ans=0; for(int i=1;i<=10000000;i++) if(!vis[i]) ans=max(ans,dfs(i)); printf("%d ",ans); } return 0; }
以上是关于hdu1856的主要内容,如果未能解决你的问题,请参考以下文章