这个是题目

然后官方给的证明 说实话没看懂

下面是代码 也不知道怎么就过了 感觉就很离谱。。。
就蛮离谱的
vector<int>e[N];
int ans=0;
int vis[N];
int res=0;
void dfs(int u){
ans=max(ans,res);
for(auto v:e[u]){
if(!vis[v]){
for(auto ed:e[u]){vis[ed]++;}
res++;
dfs(v);
for(auto ed:e[u]){vis[ed]--;}
res--;
}
}
}
void solve() {
int n,m;
cin>>n>>m;
while(m--){
int a,b;
cin>>a>>b;
e[a].push_back(b);
e[b].push_back(a);
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
vis[j]=0;
}
res=1;
dfs(i);
}
cout<<ans<<endl;
}