http://www.cnblogs.com/zxfx100/archive/2011/03/23/1993055.html
https://wenku.baidu.com/view/07f4be196c175f0e7cd13784.html
https://www.cnblogs.com/patricksu/p/8007168.html
#include<bits/stdc++.h> using namespace std; ; int head[MAXN],cnt,d[MAXN]; int n,m,a,b; struct node { int to,nxt,w; } e[MAXN*]; void init() { memset(head,-,,memset(d,,sizeof(d)); } void add(int u,int v,int w) { e[cnt].to=v,e[cnt].w=w,e[cnt].nxt=head[u],head[u]=cnt++; } int main() { init(); scanf("%d %d",&n,&m); ; i<=m; ++i) { scanf("%d %d",&a,&b); add(a,b,),add(b,a,); } ,u; ; i<=n; ++i) { u=; ; j<=n; ++j) if(d[u]<d[j]) u=j; Max=max(Max,d[u]); d[u]=-; ; j=e[j].nxt) ) d[e[j].to]++; } cout<<Max+<<endl; }