- 朴实无华的传送门
- 依旧是广搜的题,也许……值得……写写?(不要说我又在水博客啊
- 存储和每个点相连的点,然后沿着这条路一直搜索,直到搜索尽和这个点直接或间接相连的所有点,再向后搜索。
- 细节见代码。
#include<bits/stdc++.h>
using namespace std;
int n,k,ans=0,sum=0;
bool a[110];
int q[110];
int f[110][110];
void bfs(int x){
int h=0,t=1;
a[x]=1,q[1]=x;
while(h<t){
h++;
for(int i=1;i<=f[q[h]][0];i++)
if(!a[f[q[h]][i]])
q[++t]=f[q[h]][i],a[f[q[h]][i]]=1;
}
sum++,ans=max(t,ans);
}
int main()
{
cin>>n>>k;
for(int i=1;i<=k;i++){
int x,y;
cin>>x>>y;
if(x>y) swap(x,y);
f[x][++f[x][0]]=y;
}
for(int i=1;i<=n;i++)
if(!a[i]) bfs(i);
cout<<sum<<" "<<ans<<endl;
return 0;
}